Resistance Apparatus, System, and Method

ABSTRACT

A resistance exercise system having, in certain embodiments, a DC power supply system, a DC motor connected to the DC power supply system, a drive section connected to a drive element, a resistance delivery element connected to the drive element, and an extractable exercise resistance delivery section, a predetermined variable resistance section intermediate the DC power supply system and DC motor, an electrical condition sensor, and a variable resistance section control in communication with the electrical condition sensor and the predetermined variable resistance section. In some embodiments, the resistance exercise system includes a computing facility providing the ability to configure the exercise system to provide predetermined static or variable exercise resistance during exercise, and for example, during a positive or negative exercise stroke. Some embodiments allow users to create and, if desired, display varying and complex resistance exercise routines with or without use of resistance weights.

CROSS REFERENCE TO OTHER APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/613,259, filed Feb. 3, 2015, entitled “RESISTANCE APPARATUS, SYSTEM,AND METHOD,” which is a continuation of U.S. application Ser. No.13/956,337, filed Jul. 31, 2013, entitled “RESISTANCE APPARATUS, SYSTEM,AND METHOD” (now U.S. Pat. No. 8,968,155), which claims priority to U.S.Provisional Patent Application No. 61/667,640, entitled “PROGRAMMABLEELECTRONIC RESISTANCE SYSTEM AND METHOD OF USE,” filed on Jul. 31, 2012,and to U.S. Provisional Patent Application No. 61/778,101, entitled“PROGRAMMABLE ELECTRONIC RESISTANCE SYSTEM AND METHOD OF USE,” filed onMar. 12, 2013, all of which are expressly incorporated by referenceherein. In the event of any inconsistency between the priorityapplications recited above and this application, this application shallprevail.

FIELD

The present disclosure relates to resistance training systems in generaland, in one embodiment, to a system that provides resistance simulatingphysical weights (mass subject to gravity) through electrical andmechanical components.

BACKGROUND

It has long been known that resistance training can provide functionalbenefits as well as improve overall health and well-being. For example,resistance training has long been known to improve posture, provideimproved support for joints, increase bone density, improve cardiacfunction, and reduce the risk of injury from everyday activities. As aresult, resistance training has often been used in conjunction withother physical activity such as cardiovascular activity.

Aging individuals often have participated in resistance training toassist in prevention of some of the loss of muscle tissue that normallyaccompanies aging, and to help prevent osteoporosis. For many people inrehabilitation or with an acquired disability, such as thoseexperiencing a stroke or orthopedic surgery, resistance training hasoften been a central element to a recovery program. The use ofresistance machines that operate within an isolated range of motion haveaided in the rehabilitation of injuries without aggravating existinginjuries or risking new ones.

Common resistance training and rehabilitation programs have included theuse of resistance to muscular contraction in order to improve suchattributes as strength, anaerobic endurance, muscle size, etc.Resistance-training programs have been customized in order to emphasizeimprovement of specific physical attributes and conditions.

For example, one common program uses fewer repetitions with relativelyhigher degrees of resistance. Such a program is often used when strengthimprovement is desired.

Conversely, another common program has utilized increased repetitionswith relatively lower degrees of resistance. Such programs have oftenbeen used for muscle toning and for rehabilitation of injuries.

In addition, programs have incorporated combinations in which resistancecan be increased or decreased between sets or even between or duringrepetitions. One common form of increasing and decreasing of resistanceis known a “pyramiding,” which increases resistance to a peak levelduring a series of sets and then decreases the resistance during anotherseries of sets. Another form of varying resistance, called “ramping” or“static training,” increases or decreases resistance near or at the endof a exercise stroke. Yet another variable resistance technique, called“muscle confusion,” involves varying the types of resistance experiencedby given muscles between exercise sessions or sets of sessions. Othercommon weight changing terminology is “weight stripping” (removingweight during or in between exercises) and “weight augmenting” (addingweight during or in between exercises).

To optimize training time and training efficiency, trainers oftenprepare customized resistance training programs in advance of trainingan individual. These programs are often hand written or stored on aportable electronic device to be referred to and/or followed duringtraining. While these programs can be shared with a trainee, the traineemay lack the expertise to perform the exercises properly on their own. Aprofessional athlete, for example, may be on an extended trip tolocations remote from the trainer. The trainer can send customizedtraining programs to the athlete, but they may not be able to performthe exercises properly, and most often there will be no objective recordof how or when training was performed.

Conventional resistance training systems therefore have long includedstructure for varying the degree of resistance during use. One commontype of such system is a gravity weight system. This gravity weightsystem provides differing weights that can be engaged and disengaged inorder to obtain the desired level of resistance.

One problem with the gravity weight system is that the weight of thesystem increases as the maximum gravity-weight-based resistance providedby the system increases. As a result, gravity weight based systems,particularly those that can provide hundreds of pounds of resistance,are cumbersome, costly and difficult to ship, and difficult to otherwisemove, They can also present substantial risk of injury from use ofweights and the possibly of mechanical failure of system components.

For example, a gravity weight system presents injury risk due to theinertial mass of the weights in the system. The resulting higher levelof force required to overcome the inertia of a given weight or group ofweights, and thus initiate movement of the weight(s), can create a riskof excessive strain on the user's muscles and tendons. This riskincreases with use of heavier weight(s) in the system, which havegreater inertial mass and require greater levels of force to overcomeassociated inertia and at the same move the weight against the force ofgravity.

One solution to the size, weight, and inertial mass presented by gravityweight systems has utilized elastic bands, arms, or springs rather thanweights to provide resistance. This type of system, often referred to asan elastometric system, can be much lighter and easier to package, ship,and move. It typically presents much less inertial mass to be moved bythe user as well.

One problem with elastometric systems is that the elastic bands, arms,and springs provide limited resistance zones because they can only bestretched or bent so far before they will cease stretching or bending(or even possibly break). This results in a limited maximum strokelength for a particular resistance training movement. Further,elastometric systems present relatively inconsistent and unreliablelevels of resistance due to, among other things, diminishing levels ofresistance provided by the band, arm, or spring structures as theydeteriorate through use and age.

In addition, like weight resistance systems, the number of levels ofresistance provided by elastometric systems are typically relativelylimited to the relatively few levels of elastometric bands, arms, orspring included in an elastometric system or the number of weights in aweight system. Although the number of resistance levels can be increasedin these systems by providing further numbers of bands, arms, orsprings, or weights, the size, weight, expense, and difficulty of thesesystems increases along with the increase in numbers of such components.

Another problem presented by elastometric systems is that they often donot provide, as is often desired, the same level resistance throughout adesired exercise stroke or the ability to reverse the nature of thevarying resistance presented to the user. Thus, in elastometric systemsin which resistance increases during the first, outgoing stroke (i.e.,the positive stroke) and decreased during the reverse, ingoing stroke(the negative stroke), they do not provide the ability to reverse thataspect of their operation and decrease resistance during the positivestroke, and increase it during the negative stroke.

In this regard, differential resistance training varies resistancedepending on the direction of the stroke, with the positive strokeusually presenting a lower degree of resistance than that providedduring the negative stroke. As explained above, other types ofresistance training present significant other variations in resistancelevels during repetitions (e.g., ramping), from repetition torepetition, set to set (e.g., pyramiding), and exercise session toexercise session or groups of sessions to session or group of sessions(e.g., muscle confusion).

One method of differential resistance training has utilized a weightbased system. Differential resistances are achieved by a partneringassistant who helps lift the weight during the positive stroke andrefrains from assisting during the negative stroke. Partnering also beenused to also accomplish other weight based, variable resistance exerciseformats, such as ramping, pyramiding, muscle confusion, spotting, andothers.

One problem with the partnering method is that it requires an additionalperson to achieve the desired varying resistance. In addition, thepartnering method is inefficient and imprecise, as it relies on thepartner's sense of what degree of assistance to provide and when toprovide it. The partnering method also does not ensure a full range ofmotion for the person performing the positive and negative stroke due tothe partner's exercise of discretion about when to provide or ceaseproviding assistance. Similarly, the partnering method further does notprovide the type of rapid yet precise change in resistance that mayoften be desired, such as with a resistant rapid ramp at the end of anexercise stroke.

One attempt to provide greater reliability and consistency in varyingresistance exercise has utilized a hydraulic system or motor to assistor oppose movement of a traditional weight stack. These types ofsystems, however, still require the use of a weight stack and have thesame types of weight, size, and movement problems provided by weightbased systems noted above.

Another method of providing variable resistance has utilized a hydraulicmechanism to provide an adjustable resistance level without the use ofweighted elements. The hydraulic mechanism typically provides passiveresistance, providing resistance only when the user pushes or pullsagainst linkage connected to a hydraulic cylinder. As a result, suchhydraulic systems do not provide forced variable resistance trainingsuch as that provided by elastometric systems. They also do not provideany resistance, much less variable resistance, when stroke movementstops, such as at the beginning or end of a stroke. Hydraulic systemsusually are also relatively slow in changing resistance levels.

Pneumatic resistance systems have also been developed. Some of thesetypes of systems utilize electronic regulators to supply air cylindersand accumulator tanks with compressed air. The electronic regulatorcontrols pressure and maintains a selected pressure setting by adding orrelieving air during each movement or stroke made by the user. Thesepneumatic systems typically have relatively imprecise structures fordetermining and setting the resistance level. They also typically havenot included mechanisms for forcing differential or other varyingresistance levels at varying levels specified by the user; and pneumaticsystems are typically slower than hydraulic systems in changingresistance levels.

Further, pneumatic systems typically do not provide resistance similarto that of a weight stack or free weights. The differing pneumatic typeof resistance can negatively impact the exercise experience and resultin reduced motivation in engaging in or completing an exercise regimen.

Other systems and methods for creating variable resistance include aresistance mechanism that progressively varies resistance applied to alifting mechanism during the positive stroke, and decreases resistanceto substantially zero during the negative strokes. Some of these systemsutilize motors or hydraulic forces to either create the resistance ormodify or oppose the resistance provided by a traditional weight stack.Such systems have been utilized to provide pyramiding exercise schemesfor example. However, these systems lack full adjustability and presentissues such as those described above, such as inability to implementother resistance profiles, differing exercise programs, etc.

Some prior systems have use a brake or similar system to createincreased resistance on the return stroke of a cable or lever. Thesesystems, however, can produce excess heat, inefficiently use power viathermal losses, and lack precise configurability or programmability dueto lack of control in applying the brake instantaneously or consistentlyas the brake system wears through use.

Yet other systems utilize a motor coupled to a clutch, such as africtionless eddy-current clutch, or torque converter to provide anadjustable resistance to a load member to oppose a predeterminedtraining movement performed by a user. These systems detect the locationand direction of the load member and modify the torque applied to theload member to provide a consistent resistance felt by a user duringboth a positive and negative stroke. Although these systems caneliminate the need for a bulky weight stack, they utilize powerinefficiently by controlling the torque and hence the resistance felt bythe user via a clutch, i.e., underutilizing power supplied to the motor.Furthermore, these systems, although allowing for some adjustability ofresistance versus the position of the load member, do not provide aprecise programmable resistance profile to implement varying otherresistance techniques, such as elastometrics, ramping, pyramiding, ormuscle confusion.

Other systems have utilized a low voltage DC motor to simulate a weightstack, except that the amount of resistances provided the motor isdependent on the amount of displacement during an exercise stroke. Thesesystems thus provide for a “soft start,” providing lower startingresistance (unlike that inertial mass that must be overcome in a weightbased system) to enhance user safety. However, these systems have notthemselves provided other types of variable resistance techniques suchas ramping, elastometric resistance, pyramiding, or differentialresistance.

Other systems provide for adjustability relative to position andrelative to resistance, such as constant velocity variable resistance ormore traditional variable resistance applications and further providefor customizable resistance profiles. However, these systems do notprovide for accurate simulations of elastometric resistance profiles orcustomize end ramping or forced negative profiles.

Programmable systems utilizing motors or hydraulic forces to emulatepyramiding often lack the ability to combine other exercise profileswith pyramiding, such as, for example, elastomeric pyramiding.

SUMMARY

The present specification discloses various novel systems, apparatus,and processes. In one aspect, systems, apparatus, and processes areprovide programmable variable resistance for use in strength training,rehabilitation, and other resistance-based training that may solve oneor more of problems mentioned above with current weight trainingmethods. In some embodiments, the system can provide programmable fixedor variable resistance during the positive and negative exercise stroke.

Some such systems apply a programmable and adjustable resistance via aflexible exercise resistance member, such as cable in some embodiments,to provide a wide variety of differing resistance training exercises,such as elastometric, reverse elastometric, end-ramping, forced negativeor differential, weight stripping, weight augmenting, and muscleconfusion resistance exercises. Some instances can include a struggledetection system, reducing resistance when user struggle is detected.

In some embodiments, the mass of components to be moved during exercisewith the system can, if desired, be very low regardless of the amount ofresistance developed by the system. Some embodiments can thus requirethe user to thus incur relatively little if any inertial resistance dueto inertial mass while providing resistance levels from 1 pound to over300 pounds during the positive and negative stroke.

In some embodiments, a variable resistance system includes a motor, suchas a DC motor, that supplies resistance via torque generated by themotor against a cable (or other exercise resistance element) connectedto or driven by the DC motor. In certain embodiments, the level ofresistance provided by the DC motor is controlled by a control systemthat varies the amount of current supplied to the DC motor, thuschanging the resistance opposing movement of the cable. Some systems canthus completely dispense with use of gravity weights to generateexercise resistance.

In some systems, the variable resistance system includes (i) a sensorfor sensing voltage or other aspect (such as current for example)generated by or resulting from the DC motor and (ii) circuitry forvarying DC input to the DC motor in response to the voltage or otheraspect sensed by the sensor.

In some embodiments, the DC motor has a high current and/or high voltagepower source, such as an AC motor coupled to an alternator, or anamplifier, such as a class D amplifier for example. Some systems canreceiving power from, for example, a standard household socket. Themotor or other drive circuitry can be controlled by an automated userinterface in some applications.

In some embodiments, the motor and associated controller is programmableto vary the motor current, providing varied resistance through theflexible exercise resistance member in accordance with a desiredresistance profile. The controller senses one or more of strokedirection of the flexible member, stroke location, flexible memberposition, and velocity of the cable in real-time. The controller changesthe DC motor current and thus exercise resistance depending on one ormore of the sensed aspects. For example, sensing of real-time cableposition and, optionally, velocity can allow the controller to varyresistance as a function of sensed position and, optionally, velocity.

Further, in some systems, resistance with respect to time are alsoprogrammable, allowing for stepped changes in resistance or smoothtransitions from one resistance level to the next. In some cases, thiscan reduce or eliminate a jerking effect due to sudden change inresistance.

In some embodiments, the controller and an automated user interfaceallow a user to program a multitude of different resistance profiles,such as stepped resistance, forced negative resistance, muscleconfusion, weight stripping, ramping up or down, elastometricresistance, and reverse elastomeric resistance profiles, as well ascombinations of one or more such or other profiles.

In certain instances, exercise resistance can be programmed to vary as afunction of stroke n other ways as well. For example, ramp times canalso be programmable, for example in one micro-second or otherincrements.

In certain instances, the exercise resistance can be programmed to bedirectionally equal and constant, directionally unequal and constant,positionally variable and directionally equal (like a spring) orpositionally variable and directionally unequal (i.e. heavier variableweight going one direction). The programmable electronic resistancesystem can accommodate the differing approaches without the assistanceof spotters. Further, this functionality can help influence, andvalidate, or invalidate, the effectiveness of the different approachesof the varying negative weight training programs.

In some embodiments, a stroke indicator is programmable to indicatecable position in real-time to the user. In some cases, the strokeindicator can have approximately a ¼ inch resolution and can indicateposition during the full cable stroke. In some embodiments, the user canprogram the desired stroke length for a given resistance trainingmovement or exercise, and the stroke indicator can be calibrated toindicate cable position relative to the desired stroke length.

In some embodiments, the cable position and optional speed sensingcircuitry enables the programmable electronic resistance system to sensewhen the user is struggling to complete a stroke. In response, thecontroller can automatically reduce resistance when, for example, theflexible member (such as a cable for example) exceeds a retractionthreshold or the set stroke length is achieved. In some applications,user safety can be enhanced as a result of the prompt removal ofresistance, thus reducing the likelihood of injury due to the userhaving to manage and control resistance or weights.

In certain instances, exercise resistance can be applied to the user bymotor rotation force (torque) via a flexible member attached to atake-up drum or reel, linear or other retractor, such as a chain driveor timing belt, or other device. In some embodiments, the systeminertial mass presented to the user may consist of a cable (forexample), cable attachment structure on both ends, and the motorinertia, which may be multiplied or divided by the gearing ratio ofgears intermediate the motor drive and the cable. In some cases, thesystem inertia mass may remain fixed for any variation inweight/resistance experienced by the user, and if desired, the inertialmass can be very low as compared to a weight based system for example.

In some embodiments, a user can configure or adjust one or more of theresistance parameters via a user interface in communication with aprogrammable resistance motor apparatus. In some cases, the user canadjust one or more resistance parameters via a computer, wirelessly viaa smart phone, a tablet, or a user interface controlling amicrocontroller in communication with the programmable resistance motorapparatus.

In some systems for example, the user can set or adjust a staticresistance level (simulating free weights) or can program or select apre-programmed resistance profile (such as an elastomeric profilesimilar to existing elastic bands) that can change resistance relativeto time, stroke rate, position in the stroke of the cable for aparticular resistance training movement, or any other useful measuringpoint for resistance training. In some cases, the user can program orselect one of many types of resistance profiles, such as differentialresistance programs, high repetition training programs that allow forsignificant variations in resistance, resistance reduction profiles forsafety precaution, muscle confusion profiles, pyramiding profiles,end-point ramping training profiles, and/or completely customizableprofiles particular to a specific sport, activity, etc.

In some embodiments, the maximum, or a portion of, the resistance levelprovided by the apparatus is not provided by weights. This can allow theweight and size of the apparatus to be reduced, rendering the apparatusless cumbersome, easier to ship and move, and safer to use. In somesystems, the weight and size of the apparatus can thus be relativelyless than traditional exercise machines.

In some systems, the inertial mass of components moved during theresistance exercise is fixed regardless of amount of resistance providedby the apparatus. In some systems, the inertial mass of such componentsis reduced or very low, particularly as compared to weight resistancesystems. Certain of these types of systems can help reduce stress onmuscles and tendons due to the typical need to overcome inertial massresistance with weight based systems, particularly at the

In some embodiments, the apparatus can retrofit to conventionalresistance equipment, including, for example, machines having a weightstack, such as a universal workout station, or machines that employ acable tie-in to resistive elements, such as a Bowflex™. In some of theseembodiments, one or more of the following advantages are realized. Thereturn on investment in existing equipment can be improved by enablingsome such equipment to be functionally extended with modification andwithout necessarily requiring the purchase and installation ofadditional weight elements.

Some systems detect cable slackening and add a retracting force tomaintain or remove the slack in the cable. Some embodiments can sensecable droop (horizontally due to the gravitational force on the cable)or cable separation from one or more pulley guides (vertically due tothe gravitational force on the cable); in response, a controller canissue commands to accomplish correction to reduce or eliminate the slackcondition. Slack detection and counteraction can, in some instances,provide a resistance training system that feels more like traditionaltraining device using weighted elements. Some embodiments can allow theuser to pull the cable at any desired user speed without having theresistance change, so that a set resistance is independent of velocityof the cable.

In some embodiments, during the outward stroke (cable extension), themotor is moving is the non-preferred direction of rotation, thus againstthe voltage that supplies current to the motor, such as analternator-generated voltage, and will generate a voltage in theopposite polarity of the supplied voltage. In some cases, if thisnegative voltage is of sufficient amplitude to forward bias thealternator rectifier diodes, user can feel an increase in resistance,since the motor generates its own current and thus resistance throughthe diodes. This unwanted increased resistance may be corrected for byplacing one or more resistor, in some embodiments a low value resistor,in series with the motor. In some embodiments, the resistor value can bereduced or even minimized to reduce resistor power dissipation (in someembodiments, the current to or from the motor flows through thisresistor, generating heat). The reduced or minimum resistor value can bedetermined iteratively by inserting a resistor in the motor-alternatorconnection path, generating flexible member velocity, for examplemaximum outward cable velocity in some embodiments, at a desired userresistance, and then inspecting the results. The addition of the seriesresistor may also provide, in certain instances, the benefit of aidingin drive circuitry smoothing, particularly at the lower resistancelevels.

In some instances, the programmable electronic resistance system cancreate, store, and toggle between two or more user profiles, allowingparticipants in a joint training session to quickly and easily changeresistance configurations in accordance with each trainees customtraining program. This rapid reconfiguration can, in some applications,provide one or more of reduction in overall workout time, reduction inthe risk of injury, improvement in exercise timing and rhythm, andenhancement of the overall training experience.

In some implementations of the programmable electronic resistancesystem, trainers can prepare customized training programs on a computingdevice disconnected from the resistance apparatus or network. Theseprograms can be shared with a trainee, other trainers, or any other userof the programmable electronic resistance system, who can then, ifdesired, use the training program with a programmable electronicresistance system. The sharing of custom such configuration programs cantransfer the expertise of the program author to a trainee, enabling thetrainee to acquire such expertise. In some cases, a trainer can sendcustomized training programs to a trainee in a remote location, enablingthe trainer to add improved consistency to a trainee's training regimen.Further, in some implementations, historical information relating toexercises performed is persistently stored providing an objective recordof how or when training was performed, allowing the trainer to betterassess and tailor subsequent training.

Some systems include other features such as drive drum-unspoolingdetection and prevention systems. Certain embodiments can include ormore height adjusting mechanisms, such as a mechanism to adjust theheight of the exercise resistance flexible member.

It is to be understood that the foregoing is only a brief summary ofsome aspects of this specification. The present specification disclosesmany other novel features, problem solutions, and advantages. They willbecome apparent as this specification proceeds. Thus, the scope of agiven claim is to be determined by the claim as issued and not bywhether it addresses an issue set forth in the above Background orincludes a feature set forth in this Brief Summary.

BRIEF DESCRIPTION OF THE DRAWINGS

A further understanding of the nature and advantages of the embodimentsmay be realized by reference to the following drawings. In the appendedfigures, similar components or features may have the same referencelabel. Further, various components of the same type may be distinguishedby following the reference label by a dash and a second label thatdistinguishes among the similar components. If only the first referencelabel is used in the specification, the description is applicable to anyone of the similar components having the same first reference labelirrespective of the second reference label.

FIG. 1 is a front-side perspective view of an Resistance systemincluding a programmable electronic resistance box;

FIG. 2 is another perspective view of the Resistance system includingthe programmable electronic resistance box of FIG. 1;

FIG. 3 is a top view of the programmable electronic resistance box ofFIG. 1;

FIG. 4 is a side perspective view of a partially-assembled Resistancesystem including the programmable electronic resistance box of FIG. 1;

FIG. 5 is a side perspective view of a drive assembly including apotentiometer of the Resistance system of FIG. 1;

FIG. 6 is a perspective view of an alternative embodiment of thepotentiometer of the Resistance system of FIG. 5;

FIG. 7 is a side view of the potentiometer of the Resistance system ofFIG. 6;

FIG. 8 is a perspective view of the programmable electronic resistancebox of FIG. 1;

FIG. 9 is a front-side view of a retrofit Resistance system;

FIG. 10 is a side perspective view of the retrofit Resistance system ofFIG. 9;

FIG. 11A is a schematic diagram of an embodiment of a cable slackcorrection system of an Resistance system;

FIG. 11B is a schematic diagram of another embodiment of a cable slackcorrection system of an Resistance system;

FIG. 11C is a schematic diagram of the embodiment of a cable slackcorrection system of an Resistance system of FIG. 11B;

FIG. 12 is a block diagram of an embodiment of a solid state currentsupply of an Resistance system;

FIG. 13 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 14 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 15 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 16 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 17 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 18 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 19 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 20 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 21 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 22 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 23 is a block diagram of another embodiment of a solid statecurrent supply of an Resistance system;

FIG. 24 is a functional block diagram of the Resistance system of FIG.1;

FIG. 25 is another functional block diagram of the Resistance system ofFIG. 1;

FIG. 26 is a block diagram of a controller of the Resistance system ofFIG. 1;

FIG. 27 is an electrical schematic diagram of a motor an Resistancesystem;

FIG. 28 is an electrical schematic diagram of a motor an Resistancesystem;

FIG. 29 is an electrical schematic diagram of a motor an Resistancesystem;

FIG. 30 is an electrical schematic diagram of a motor an Resistancesystem;

FIG. 31 is a is a block diagram of a programmable resistance system inaccordance with various embodiments;

FIG. 32 is a screen capture of a configuration interface displayed onthe host device of FIG. 31;

FIG. 33 is a screen capture of a login interface displayed on the hostdevice of FIG. 31;

FIG. 34 is a screen capture of an account creation interface displayedon the host device of FIG. 31;

FIG. 35 is a screen capture of exercise history displayed on the hostdevice of FIG. 31;

FIG. 36 is a screen capture of exercise history displayed on the hostdevice of FIG. 31;

FIG. 37 is a screen capture of the stored exercise profile panedisplayed on the host device of FIG. 31;

FIG. 38 is a screen capture of the stored exercise profile panedisplayed on the host device of FIG. 31;

FIG. 39 is a screen capture of the initial stored exercise profile paneand exercise profile pane displayed on the host device of FIG. 31;

FIG. 40 is a screen capture of the post power up stored exercise profilepane and exercise profile pane displayed on the host device of FIG. 31;

FIG. 41 is a screen capture of a calibration options interface displayedon the host device of FIG. 31;

FIG. 42 is a screen capture of a manual calibration options interfacedisplayed on the host device of FIG. 31;

FIG. 43 is a flow diagram of a method for calibrating the programmableResistance system of FIG. 31;

FIG. 44 is a flow diagram of a method for generating and displaying afull stroke indicator on the host device of FIG. 31;

FIG. 45 is a screen capture of a forced negatives exercise profiledisplayed on the host device of FIG. 31;

FIG. 46 is a flow diagram of a method for implementing a forced negativeexercise for the programmable Resistance system of FIG. 31;

FIG. 47 is a flow diagram of a method for implementing a forced negativeexercise for the programmable Resistance system of FIG. 31;

FIG. 48 is a screen capture of a forced negatives exercise profiledisplayed on the host device of FIG. 31;

FIG. 49 is a flow diagram of a method for implementing a forced negativeexercise for the programmable Resistance system of FIG. 31;

FIG. 50 is a flow diagram of a method for implementing a forced negativeexercise for the programmable Resistance system of FIG. 31;

FIG. 51A is a forced negative resistance profile diagram implemented ina programmable Resistance system of FIG. 31;

FIG. 51B is a forced negative resistance profile diagram implemented ina programmable Resistance system of FIG. 31;

FIG. 52 is a screen capture of an elastometric exercise profiledisplayed on the host device of FIG. 31;

FIG. 53 is a flow diagram of a method for implementing an elastometricexercise for the programmable Resistance system of FIG. 31 in accordancewith various embodiments;

FIG. 54 is a line diagram of a triangle wave function implemented in theprogrammable Resistance system of FIG. 31;

FIG. 55 is a flow diagram of a method for implementing an elastometricexercise for the programmable Resistance system of FIG. 31 in accordancewith various embodiments;

FIG. 56 is a flow diagram of a method for implementing an invertedelastometric exercise for the programmable Resistance system of FIG. 31in accordance with various embodiments;

FIG. 57A is an elastometric resistance profile diagram implemented in aprogrammable Resistance system of FIG. 31;

FIG. 57B is an inverted elastometric resistance profile diagramimplemented in a programmable Resistance system of FIG. 31;

FIG. 58A is a stepped resistance profile diagram implemented in aprogrammable Resistance system;

FIG. 58B is a stepped resistance profile diagram implemented in aprogrammable Resistance system;

FIG. 58C is a stepped resistance profile diagram implemented in aprogrammable Resistance system;

FIG. 58D is a stepped resistance profile diagram implemented in aprogrammable Resistance system;

FIG. 59 is a screen capture of a stepped exercise profile displayed onthe host device of FIG. 31;

FIG. 60 is a flow diagram of a method for implementing a steppedexercise for the programmable Resistance system of FIG. 31 in accordancewith various embodiments;

FIG. 61 is a flow diagram of a method for implementing a steppedexercise for the programmable Resistance system of FIG. 31 in accordancewith various embodiments;

FIG. 62 is a flow diagram of a method for implementing a steppedexercise with smoothing for the programmable Resistance system of FIG.31 in accordance with various embodiments;

FIG. 63 is a flow diagram of a method for implementing a steppedexercise with smoothing for the programmable Resistance system of FIG.31 in accordance with various embodiments;

FIG. 64A is a screen capture of an elastometric exercise profile withendpoint ramping displayed on the host device of FIG. 31;

FIG. 64B is a screen capture of an exercise profile with endpointramping displayed on the host device of FIG. 31;

FIG. 65 is a flow diagram of a method for implementing endpoint rampingfor the programmable Resistance system of FIG. 31 in accordance withvarious embodiments;

FIG. 66 is an endpoint resistance profile diagram implemented in theprogrammable Resistance system of FIG. 31;

FIG. 67 is a screen capture of an exercise profile with repetition-basedpyramiding displayed on the host device of FIG. 31;

FIG. 68 is a flow diagram of a method for implementing repetition-basedpyramiding for the programmable Resistance system of FIG. 31 inaccordance with various embodiments;

FIG. 69 is a screen capture of an exercise profile with delay-basedpyramiding displayed on the host device of FIG. 31;

FIG. 70 is a flow diagram of a method for implementing delay-basedpyramiding for the programmable Resistance system of FIG. 31 inaccordance with various embodiments;

FIG. 71 is a screen capture of an exercise profile with repetition-basedpyramiding and delay-based pyramiding displayed on the host device ofFIG. 31;

FIG. 72 is a flow diagram of a method for implementing repetition-basedpyramiding and delay-based pyramiding for the programmable Resistancesystem of FIG. 31 in accordance with various embodiments;

FIG. 73 is a screen capture of the exercise screen displayed on the hostdevice of FIG. 31; and

FIG. 74 is a block diagram of the internal structure of a computer usedin the computer network of FIG. 31.

DETAILED DESCRIPTION

Systems, devices, methods, and software are described for providingprogrammable electronic resistance for use in strength training,rehabilitation and other resistance-based training. This descriptionprovides examples, and is not intended to limit the scope, applicabilityor configuration of the various embodiments of programmable electronicresistance systems, devices, methods, and/or software. Rather, theensuing description will provide those skilled in the art with anenabling description for implementing various embodiments. Variouschanges may be made in the function and arrangement of elements.

Thus, various embodiments may omit, substitute, or add variousprocedures or components as appropriate. For instance, it should beappreciated that the methods may be performed in an order different thanthat described, and that various steps may be added, omitted orcombined. Also, aspects and elements described with respect to certainembodiments may be combined in various other embodiments. It should alsobe appreciated that the following systems, methods, devices, andsoftware may individually or collectively be components of a largersystem, wherein other procedures may take precedence over or otherwisemodify their application.

One Embodiment of an Electric Weight System

In reference to FIGS. 1-7, an Electric Weight System 100 includes aprogrammable electronic resistance box 101 containing at least one motor102 controlled by a controller 104, and a host computing device 106 (notshown), which may be external to the programmable electronic resistancebox 101, in communication with the controller 104. The motor 102, whichmay be a DC motor, drives a cable 108 that terminates via attachment toa training interface 110, which may be an exercise bar, a rope handle,or any other type of interface that allows a user to apply a forcethrough the cable 108 by moving the cable 108 against the motor 102. Themotor 102 drives a chain 114 vi one or more gears, such as spur or wormgears, for example. The chain 114 is coupled to the cable 108, allowingfor the motor 102 to apply a force against movement of the cable 108both during the out stroke and the in stroke of the cable 108. Apotentiometer 115 is coupled to the output of the motor 102, such as tothe shaft of the motor 102, and provides position and/or velocityinformation of the cable 108 to the controller 104. The chain 114 isalso coupled to two stop plates 116, 118 that limit the range of motionof the cable 108 to enhance user safety, limit cable excursion, andprotect the potentiometer while performing resistance training movementsusing the Electric Weight System 100. In some embodiments, any positionsensing device can be coupled to the output of the motor 102, such as tothe shaft of the motor 102, or to a shaft of the cable drivingmechanism, such as a shaft of a take-up reel when no chain isimplemented, or a chain drive gear shaft, etc., to provide positionand/or velocity information of the cable 108 to the controller 104.

The DC motor 102 is supplied power from an AC motor 120 that drives analternator 122 via a belt 124. The AC motor 120 and the controller 104are powered via a power cable 302 supplying 120V AC. In someembodiments, the alternator 122 may also be directly driven by the ACmotor 120, where the shafts of the two machines are coupled together(in-line). The host computing device 106 sends configuration data andcommands to the controller 104 via communication cable 127. Based on theconfiguration data and commands, the controller 104 adjusts the amountof power output from the alternator 122, and thus the current suppliedto the DC motor 102, to control the amount of resistance applied tomovement of the cable 108. In yet other embodiments, the DC motor 102may be powered via one or more amplifiers (not shown) via a 120 or 240 VAC power supply 125 (not shown), such as from a standard wall socket.The various designs and implementations of the drive circuitry and hostcomputing device will be described in greater detail below.

The programmable electronic resistance box 101 configures and drives thealternator 122 as a constant-current (variable-voltage) power supply todrive the motor 102, which is a brushed DC motor. In turn, the motor 102provides resistance to a user when the user pulls the cable 108 via thetraining interface 110. Various embodiments of the present disclosureprovide an electrically programmable resistance mechanism through theuse of a high torque-constant/low voltage-constant motor 102 inconjunction with an alternator 122. The alternator 122 is used to supplythe required current (thus resistance) and voltage (thus cableretraction speed) to the DC motor 102. High torque (or hightorque-constant) DC motors are known, and can require significantcurrent at the upper torque operational region, often on the order of100 Amps or more. Electronically, currents of this scale generallyresult in silicon destruction and/or short life spans. In an effort toreduce the current requirement to extend the life of the silicon, priordesigners have tried applying gear reducers (transmissions) to highvoltage-constant/low torque-constant motors. Although this can reducethe stress on the driving silicon, it also has many negative sideeffects—particularly an increase in the motor inertia felt by the user,and the drag (losses) of the transmission (gear box). This results in afeel to the user that does not closely simulate a traditional weightsack and does not provide a consistent resistance value through both theout-stroke and in-stroke of resistance movements. To minimizetransmission losses and motor inertial loading, as well as to closelysimulate a transitional weight stack or other traditional resistancetraining devices while providing a large resistance range, any gearingbetween the motor and the training interface should be as close to unityor below as possible, which results in current requirements that are(often) destructive on silicon devices.

Embodiments of the present disclosure reduce the need for silicon as themain driving systems through the use of an alternator 122. In someembodiments, the alternator 122 is configured as a current-controlledvariable voltage power supply. The controller 104 senses the DC motor102 current and compares it with the desired current that will result inthe desired resistance. The alternator 122 rotor current is adjusted bythe controller 104 to maintain the current through the DC motor 102. Thecontroller 104 communicates with a host computing device 106, senseamplifier(s), error amplifier(s), and drive electronics. The alternator122 provides a variable and/or constant high current output to the DCmotor 102 via control of the current through the alternator's rotor. Thealternator 122 output is converted to DC by using rectifiers. Sidebenefits of using an alternator 122 include, for example, completeelectrical isolation so that the alternator output can be isolated fromthe any other electrical systems including the controller 104, AC supplyvoltage, etc. Furthermore, multiple safety shutdown points can beprovided via the alternator 122, such as by cutting the alternatordrive, cutting rotor current, and setting maximum DC motor currentoutput to match the maximum alternator output, among other things. Also,the use of an alternator 122 reduces power electronic device sizes suchas switching devices, with the ability to drive high current and low andmoderate voltage, and motors (rotor control requires significantlysmaller driving devices for a given output than would be realized bydriving the output directly using solid state devices).

In some embodiments, the DC motor torque constant and torque range gearratios between the DC motor 102 and a drive shaft turning chain 114determine the minimum and maximum weight resistance. For example, aratio between the diameter of the DC motor gear 326 and the diameter ofthe first and/or second drive gears 330, 352 of 1.05 provides a 127.5lbs maximum resistance, adjustable by half pound increments, via a 100amp DC motor 102 with a torque constant of 1.69. A gear ratio of 3.09via the same DC motor 102 provides a 510 lbs maximum, with theresistance adjustable in increments of 2 lbs. These builds implement an8 bit PWM driver incorporated into a 5V controller 104, thus yielding255 different resistance settings, with a voltage per bit step of 0.02volts. In other cases, the DC motor 102 can have a different torqueconstant and have different current requirements/maximum currentratings. In some cases, DC motors that can operate safely with a 1-10amp current supply can be used with higher gear ratios to provide asimilar high maximum resistance. Furthermore, DC motors with a maximumcurrent rating anywhere between below 1 and up to 120, 140 amps can beused depending on the specific application, such as home use, physicaltherapy, etc. To ensure durable operation of the Electric Weight system100 and/or the programmable electronic resistance box 101, the DC motor102 can be driven below the maximum current specified for the motor,such as 10-20% below the maximum current.

The AC motor 120 and alternator 122 determine the maximum alternator 122output, and the alternator 122 will determine the maximum output currentto the DC motor 102. Any of these can be changed as necessary for aparticular application.

The Electric Weight System 100 allows a user, such as a trainer or aperson using the machine for resistance training, to program resistanceapplied by the motor 102 to the cable 108 via the host computing device106 for various resistance training movements according to a fullyprogrammable resistance profile relative to position of the cable 106via the output of the potentiometer 115 (or any other position sensingdevice), time, or any combination thereof. Real-time cable positionand/or optional velocity sensing information provided by thepotentiometer 115 allows variations in resistance as a function ofposition to be programmable by the user via the host computing device106. Resistances with respect to time are also fully programmable viathe host computing device 106, allowing for stepped changes inresistance or smooth transitions from one resistance level to the next.In some cases, this may ensure that the user does not experience the“jerk” effect of a change in resistance provided by the DC motor 102.

In some embodiments, the host computing device 106 can include or beimplemented using a custom console, PC program, Smart Phone, Tabletcomputer, etc. and a physical link (USB, RS-232), or wirelessconnection. The host computing device 106 can enable the user to set thedesired resistance (e.g., in pounds) which in turn via the controller104 will control the output of the alternator 122 to provide the correctcurrent to the DC motor 102, corresponding to the resistance selected bythe user.

Via the host computing device 106, the user can program a multitude ofdifferent resistance profiles, such as stepped resistance, forcednegative resistance, muscle confusion resistance, elastometricresistance, and reverse elastomeric resistance profiles, as well ascombinations of one or more such or other profiles. Resistances can bevaried as a function of stroke, either during the stroke itself and/orat the stroke end points, for example, such that resistance can bechanged up or down at either the beginning or ending stroke position.All ramp times can also be programmable, for example in 1 ms increments.A user via the host computing device 106 can also program the resistanceto vary during the stroke in response to changes in the speed of theinward stroke and/or the outward stroke.

The host computing device 106 includes a full stroke indicator that isprogrammable to indicate, visually and/or numerically, cable position inreal-time to the user. In some cases, the stroke indicator providesapproximately a ¼ inch cable 108 position resolution and encompasses thefull cable stroke/excursion. In some embodiments, the user can programthe desired stroke length for a given resistance training movement orexercise, and the stroke indicator may be calibrated to indicate cableposition relative to the desired stroke length. Stroke endpointindication can also be signaled by sound from the controller 104 and/orhost computing device 106, such as via a beep.

The potentiometer 115 (an example of a cable position sensing device)senses cable position and/or optional cable velocity and via controller104, can signal to the controller 104 to reduce resistance when, forexample, the cable velocity exceeds a retraction speed threshold, or thecable 108 goes below a set or pre-programmed stroke start or end point.The reduction in resistance can prevent user injury when, for example,the user experiences fatigue and cannot return the cable 108 to a restposition safely.

The above functionality, including the different resistance profiles andtheir detailed implementations, will be described in greater detailbelow.

In some embodiments, the cable 108 is supported via first and secondsupport members 126, 128 that rise vertically from and normal to twoparallel base rails 130, 132 supporting the motor 102 and controller104. The motor 102 and the controller 104 are housed in a rectangularenclosure 134, which can reduce noise of the DC motor 102 experienced bythe user, and can protect the drive system from abuse, damage, etc. Insome embodiments, the enclosure 134 may be constructed out of atransparent material, such as Plexiglas, or an opaque plastic. In otherembodiments, the enclosure 134 may be constructed out of a metal, suchas aluminum, wood, composites, etc., or combinations thereof. The baserails 130, 132 extend outwardly from the enclosure 134 parallel to eachother in one direction so that the cable 108 can be extended from theElectric Weight System 100 without causing any imbalance of the ElectricWeight System 100. However, other support structures are contemplatedherein, such as any number of support rails extending in variousdirections from the programmable electronic resistance box 101, made outof various materials such as metal, composites, etc. The cable 108 isrouted from the chain 114 down around a first lower pulley 136 mountedto the first support member 126. The cable 108 is then routed to a midpulley 138 that slidably engages the first vertical support member 126via an adjustable cable height bracket 140. The cable 108 is then routeddown around a second lower pulley 142 mounted to the second supportmember 128. The cable 108 then is routed around a first adjustablebracket pulley 144, up and around a second adjustable bracket pulley 146(not shown), both mounted to an adjustable bracket 148, and terminatesin a clasp mechanism 150 that is engagable by the training interface110. The adjustable bracket 148 is slidably engagable on the secondvertical support member 128 and can be adjusted by the user to rest atvarious heights along the second support member 128.

The adjustable cable height bracket 140 also mounts to a lower cabletension pulley 152 which routes a support cable 154 attached to amid-point of a top bracket 156 that spans between the first and secondsupport members 126, 128, adding stability and weight bearing capacityto allow a substantial range of resistance to be applied through thecable 108. The support cable 154 routes from a mid-point of the topbracket 156, around the lower cable tension pulley 152, up and around anupper cable tension pulley 158 and terminates on a support cable hold160 mounted to the adjustable bracket 148. When the adjustable bracket148 is adjusted vertically by a user along the second vertical supportmember 128, the position of cable 108 may change, i.e. relative to thepotentiometer 115, thus affecting the position calibration of cable 108with respect to the controller 104. The adjustable cable height bracket140, the support cable 154, and associated pulleys 152, 156 allow theuser to adjust the cable 108 height for different resistance trainingmovements via the adjustable bracket 148 without having the cable 108itself move relative to the potentiometer 115. This prevents theproblems of the retracting mechanism (e.g. the chain drive in thisexample) having to account for the added cable length needed to positionthe cable in the first place, which could be up to 8 feet either up ordown via adjusting the cable 108 height with the adjustable bracket 148;the potentiometer having to resolve that (wasted) cable 108 positioning(thereby reducing position resolution); and third, requiring turning onthe Electric Weight System 100 to make cable 108 height adjustments. Thesupport cable 154 allows the adjustable cable tension bracket 140 tomove in an opposite direction of the adjustable bracket 148 to allow thetension in the cable 108 to remain constant. This further supports moreadjustability for the user to engage in different weight trainingmovements utilizing the Electric Weight system 100. However, the claimedsubject matter is not so limited, such that any type of adjustablebracket, pulley, or cable routing system is contemplated herein.

In other embodiments, the cable 108 may consist of a Kevlar strap, arounded strap, or possibly a cord, that can be used, for example, with achain drive system. A Kevlar strap, for example, may be particularlysuited for physical therapy applications and hence lower resistancevalues because of its flexibility.

In particular reference to FIGS. 3 and 4, the programmable electronicresistance box 101 provides a user with fully programmable resistancerelative to cable 108 position and/or time implemented through a cable108, is shown. Power is supplied via a power cable 127, 302 to the ACmotor 120 and controller 104 mounted on a PCB board 304, for example. Insome cases, the controller 104 may further consist of a PCB board 304including a micro-controller and/or micro-processor and supportcircuitry, such as one or more DACs, ADCs, a communication I/O, one ormore switches, etc. In other embodiments, the PCB board 304 may includeprogrammable logic (FPGA, CPLD, etc.), which may be programmed with asoft processor able to execute programs suitable for system (controller104) operation, and support circuitry.

In other embodiments, the controller 104 can be implemented with one ormore application-specific integrated circuits (ASICs) adapted to performsome or all of the applicable functions in hardware. Alternatively, thecontroller functions can be performed by one or more other processingunits (or cores), on one or more integrated circuits. In otherembodiments, other types of integrated circuits can be used (e.g.,Structured/Platform ASICs, Field Programmable Gate Arrays (FPGAs), andother Semi-Custom ICs), which can be programmed in any manner known inthe art. The functions of each unit can also be implemented, in whole orin part, with instructions embodied in a memory, formatted to beexecuted by one or more general or application-specific processors.

The AC motor 120 drives an AC motor shaft 306 connected to an AC motorpulley 308. The AC motor pulley 308 drives a belt 124 that in turndrives an alternator pulley 310 connected to an alternator shaft 312 ofan alternator 122. To effectuate a simple belt drive arrangement, the ACmotor 120 can be aligned alongside and parallel to the alternator 122,so that the AC motor pulley 308 and the alternator pulley 310 arealigned with one another facing toward an interior wall of the enclosure134. In some embodiments, the AC motor 120 is mounted to the planar base311 of the enclosure 134 and the alternator 122 is mounted to a supportwall 314, which is generally parallel to a side mounting face of thealternator 120 transverse to the base 311, via alternator mounting bolts316, 318.

The output of the alternator 122 via alternator terminals 320, 322 issupplied to the DC motor 102 via 2 DC motor terminals (not shown). Theoutput of the alternator 122 is controlled by the controller 104 suchthat the current supplied to the DC motor 102 is proportional to theresistance specified by the user. The DC motor 102 is mounted to a sideof the support wall 314 with a DC motor shaft 324 protruding through thesupport wall 314. The DC motor shaft 324 is coupled to a DC motor gear326, which drives a linkage chain 328, which in turn rotates a firstdrive gear 330 mounted on a drive shaft 332. The drive shaft 332rotatably penetrates a first bearing 334, mounted to the support wall314, a second bearing 340 mounted to a first support bracket 336, and athird bearing 342 mounted to a second support bracket 338. The first andsecond support brackets 336, 338 form an “L” shape in cross-section,each with a base 344, 346 facing outwardly, so that a chain drive gap347 is formed between each leg 348, 350 of the first and second supportbrackets 336, 338. The second bearing 340 is mounted to an external faceof leg 348 of the first support bracket 336 and the third bearing 342 ismounted to an external face of leg 350 of the second support bracket 338such that drive shaft 332 penetrates both of the first and secondsupport brackets 336, 338 and can freely rotate via the second and thirdbearings 340, 342. Further, a second drive gear 352 is mounted on thedrive shaft 332 between legs 348, 350 of the first and second supportbrackets 336, 338 within the chain drive gap 347. The second drive gear352 drives chain 114 attached to cable 108, such that the DC motor 102can resist and/or drive movement of the chain 114, and hence resistand/or drive movement of the cable 108. The first and second supportbrackets 336, 338 are mounted to the base 311 of the enclosure 134 andsandwich the first and second support members 126, 128. The first andsecond support brackets 336, 338 are rigidly attached to the first andsecond support members 126, 128, such as via 6 bolts, 3 panningvertically for each support member. In this way, support wall 314, thefirst and second support brackets 336, 38, the first and second supportmembers 126, 128, drive shaft 332, and the first, second and thirdbearings 334, 340, 342 provide a strong support structure for the DCmotor 102 to transfer an amount of force necessary for a broad range ofresistance training exercises and movements through linkage chain 328and chain 114 to cable 108 via spur gears 326, 330, and 352 (other typesof gears can be used depending on the type of transmission used).

A potentiometer 115 is mounted on the support wall 314 in closeproximity to the DC motor shaft 324 such that the potentiometer 115 maydetect rotation of a potentiometer gear 354 coupled to the DC motorshaft. Three wires (power, ground, and wiper) connect the potentiometer115 to the controller 104 to provide data indicative of the position ofthe chain 114 and hence the cable 108 and/or of the velocity of thecable 108. The controller 104 then converts this data to be used inconjunction with the host computing device 106 to allow a user toprogram various resistance levels relative to the position and/orvelocity of the cable 108. Further functionality of potentiometer 115and other implementations thereof will be described further in referenceto FIGS. 5-7.

Sizes and shapes of components used in the various embodiments aresometimes determined by the specific sizes and shapes of the matedcomponent or components in the system.

In the embodiments of FIGS. 1-8, the AC motor pulley 308 is ⅝ inch boreand approximately 6 inches in diameter. The diameter is a function ofthe maximum desired enclosure dimensions and the alternator 122 driverequirements. The alternator pulley 310 is a 3 inch OD pulley. Full loadRPM of the AC motor 120 is matched with the alternator 122 RPM range. toplace the alternator 122 within an acceptable power band to provide theDC motor 102 with a sufficient amount of current (in this case up to 100amps) to provide a large range of resistance values. The AC motor 120 israted as a single phase 120/220 VAC 1.5 HP, continuous duty machine,such as MTR-1P5-1AB18 made by Automation Direct (One HP is 550ft-lbs/sec (746 Watts), thus the 1.5 HP is 825 ft-lbs/sec (1118.6Watts)). Alternate embodiments may use a ¾ or 1 HP motor, or any otherAC motor 120 that can spin fast enough to drive the alternator toprovide enough current to the DC motor 102 to provide the requisitelevel of resistance to the user.

The alternator 122 is a high current small footprint device, such asALT-0070P made by UNI-POINT having a minimum current output of 100 amps.In some embodiments, the high current is provided by Delta—as opposed toWye—winding configuration. The DC motor 102 is a 10 HP brushed device,such as PMG 132, manufactured by Perm Motor GMBH. This motor weighsapproximately 25 lbs. and provides a modest footprint. However, othercomponents may be used depending on the gear drive system implementedbetween the DC motor 102 and the cable 108 drive system, and dependingon the maximum resistance desired.

In the embodiment shown, the programmable electronic resistance box 101is 11.75 inches in height, 16 inches in length, and 17 inches in widthand weighs approximately 105 lbs. The weight of the programmableelectronic resistance box 101 includes the DC motor 102 at approximately25 lbs, the AC motor 120 at 45 lbs. (for a 1.5 HP device), thealternator 122 at approximately 10 lbs, the enclosure 134 at about 15-20lbs, the pulleys at approximately 4 lbs, and the gears at approximately2-4 lbs. Furthermore, the base rails 130, 132 are approximately 21inches in length and run parallel to one another and also parallel tothe width of the programmable electronic resistance box 101.

In one embodiment, the DC motor shaft 324 is ¾ inch in diameter to matchup with the DC motor gear 326, which is also ¾ inch in diameter. Chain114 and linkage chain 328 may both have a tensile strength of 3,125 lbs.and a working load of 810 lbs (#40), and are light as compared to manyalternative chains. In an alternate embodiment, chain (#35) is used forboth chain 114 and linkage chain 328, having a load of 480 lbs. In yetanother embodiment, chain (#50), with a tensile strength of 4,880 lbs.and 1,430 lbs. working load is used. In other embodiments, the tensilestrength of chain 114 and linkage chain 328 may be different toaccommodate different implementations.

The programmable electronic resistance box 101 and hence the ElectricWeight System 100 can be configured to implement various weight rangescorresponding to resistance applied through the cable 108 according tovarious resistance/weight increments by which the weight/resistance canbe adjusted. For example, for physical therapy, it may be beneficial toimplement approximately a 0.25 lbs step, allowing for a range of 0.25lbs to approximately 63.75 lbs, or possibly for a 0.33 lbs step,allowing for a range of 0.33 lbs to approximately 85.0 lbs, thedifference in implementation being, for example, the size/number ofteeth of the DC motor gear 326, the first drive gear 330, and/or thesecond drive gear 352 (all of these builds can be accomplished with thesame DC motor 102 and controller 104). In some embodiments, it can beuseful to implement other weight step and range values, for example fora standard production unit and/or for retrofitting an existing weightmachine, such as a 0.5 lbs step allowing for a range of 0.5 lbs to 127.5lbs, or a 1.0 lbs step, allowing for a range of 1.0 lbs to 255 lbs. Itmay further be possible to increase the maximum weight to 375 lbs, forinstance, by using only standard off-the-shelf components. In otherbuilds, it may be possible to obtain a maximum weight of 510 lbs with a2 lbs step, or even a 680 lbs maximum, with a 2.67 lbs step. All of theabove builds can be implemented using the same electronics, i.e., DCmotor 102, alternator 122, AC motor 120, controller 104, drivecircuitry, etc., by modifying the gear ratio between the DC motor gear326 and the first and/or second drive gears 330, 352 (or the take-upreal gear 912/take-up reel 908 diameter in the take-up reel embodiment).In some cases a changeable gearing system may be implemented to furtherincrease the range of resistance values possible while maintaining asmaller step value. Thus the programmable electronic resistance box 101,utilized in either the Electric Weight System 100 or a retrofit system,can be modified to suit a huge range of resistance training needs and/orprograms.

The above is only meant as an example, whereas the claimed subjectmatter is not intended to be limited by the properties/sizes of theindividual components.

In particular reference to FIGS. 5-7, two embodiments of thepotentiometer 115, 115-a (which may also be referred to herein as aposition pot) and its implementation in the programmable electronicresistance box 101 are shown. With reference to FIG. 5, thepotentiometer 115 is mounted to the support wall 314 slightly above theDC motor shaft 324 via a mounting plate 502. The potentiometer 115contacts a potentiometer gear 354 coupled to the DC motor shaft 324 viapotentiometer linkage 504, and is electrically connected via three wires(power, ground, and wiper) to the controller 104. In this way, thepotentiometer 115 can sense when and how much the potentiometer gear 354and hence the DC motor shaft 324 moves. The output signal of thepotentiometer 115 can then be calibrated by the controller 104 based onthe size/number of teeth of the potentiometer gear 354, the DC motorgear 326, and the first and second drive gears 330, 352 to determine amovement position and/or a velocity of the cable 108. This informationcan then be utilized by the controller 104 in combination with inputfrom the host computing device 106 to program varied resistancesrelative to cable 108 position and/or velocity.

The size of the potentiometer gear 354 to the DC motor gear 326, and thefirst and second drive gears 330, 352, and hence the ratio between thepotentiometer gear 354 and turns of the drive shaft 332, determines thenumber of drive shaft revolutions per potentiometer gear 354 revolutionsas well as the effective bit-per-step value. In some embodiments, thepotentiometer 115 is a 10-turn device. A 1:1 gear ratio would yield amaximum of 10 turns for the shaft. An 8-bit conversion would then yield(360 degrees)*10/255 or 14 degrees/bit. In one embodiment, the DC motorgear 326 is a 20 Deg Pressure Angle Spur Gear 32 Pitch, 72 Teeth, 2.25″Pitch Dia, ¼″ Bore, while the potentiometer gear 354 is a 20 DegPressure Angle Spur Gear 32 Pitch, 24 Teeth, 0.75″ Pitch Dia, ¼″ Bore.This yields a 3:1 ratio (3 potentiometer turns/shaft turn) or 4.706degrees/bit resolution.

Referring now to FIGS. 6 and 7, a second embodiment of a potentiometer115-a and its implementation in the programmable electronic resistancebox 101 is shown. In this embodiment, the potentiometer 115-a is coupledto a potentiometer shaft 604 rotatably mounted to a potentiometerbracket 606 via a hole in the center of the potentiometer bracket 606. Adrive shaft coupler end 608 of the potentiometer shaft 604 opposite thepotentiometer 115-a couples to the drive shaft 332 on a side of thesupport wall opposite the first bearing 334. The potentiometer bracket606, via 2 bolts, attaches to the support wall 314 adjacent to the DCmotor 102 and aligns the drive shaft coupler end 608 of thepotentiometer shaft 604 so that it rotatably engages the drive shaft332. The potentiometer bracket 606 in cross section forms a square “C”shape with 2 tabs extending outwards and having fastener passages forattachment to the support wall 314. The potentiometer 115-a has threepins, which via wires connects to the controller 104, enabling thepotentiometer 115-a to communicate data indicative of cable 108 positionand/or velocity to the controller 104, in a fashion similar to thatdescribed above in reference to FIG. 5.

In some embodiments, either the configuration of potentiometer 115 orpotentiometer 115-a can be used based on space/size constraints of theenclosure 134, mounting requirements, size of the DC motor 102, etc. Inother embodiments, both potentiometers 115 and 115-a may be used toincrease accuracy of cable 108 position and or velocity sensing, or anyother such purpose. The above description is only an example, and is notlimiting of the scope of the claimed subject matter. Various otherdesigns and implementations of a potentiometer for cable 108 positionand/or velocity sensing, such as various placements and/or attachmentsare contemplated herein.

Referring now to FIG. 8, an alternative embodiment of the programmableelectronic resistance box 101-a is coupled to controller 104-a and hostcomputing device 106-a (not shown) and can provide programmableresistance functionality for various resistance training movements,exercises, etc. For continuity, the same reference numbers will be usedto describe the various components of the programmable electronicresistance box 101-a that are used to describe the same or very similarcomponents in reference to the programmable electronic resistance box101 above, and differences will be described. However, this conventionis not intended to limit the components of the programmable electronicresistance box 101-a to those described previously.

In this FIG. 8 embodiment, the alternator 122-a and the AC motor 120-aare aligned such that the alternator shaft 312-a is coaxial with the ACmotor shaft 306-a. In this way, the AC motor pulley 308, the alternatorpulley 310, and the belt 124 may be eliminated (not shown). Thealternator shaft 312-a is coupled to the AC motor shaft 306-a via ashaft coupler 802 so that the AC motor 120-a directly drives, i.e.,turns, the alternator shaft 312-a. This configuration can increaselongevity of the programmable electronic resistance box 101-a byreducing the amount of moving parts for example. This configuration canalso allow for enclosure 134-a to be smaller by eliminating the need forspace around the moving belt 124.

In some embodiments, the alternator 122-a and AC motor 120-a can belocated directly behind the first and second support members 126, 128 sothat the DC motor 102-a (not shown) can line up directly with the driveshaft 332. This can allow for the DC motor shaft 324 to couple directlywith the drive shaft 332 so that the DC motor 102 can directly drive thesecond drive gear 352, eliminating the need for the DC motor gear 326and the first drive gear 330. This configuration can also reduce thesize of the support wall 314. In some cases, the potentiometer 115-a,can be mounted to the drive shaft 332 adjacent the third bearing 342,with a potentiometer bracket, such as potentiometer bracket 606,mounting to an external face of the leg 350 of the second supportbracket 338.

In some embodiments, unless otherwise noted, the description of theprogrammable electronic resistance 101 may apply to the programmableelectronic resistance box 101-a.

Another Embodiment of an Electric Weight System

With reference now to FIGS. 9-10, an existing weight system 902 can beretrofitted with a programmable electronic resistance box 101-b,providing fully programmable resistance to a user via a host computingdevice 106. The programmable electronic resistance box 101-b and thehost computing device 106, unless otherwise noted, can be similar to orthe same as the programmable electronic resistance box 101 and the hostcomputing device 106 as described above in reference to FIGS. 1-8. Asdescribed below, some components and functionality of the programmableelectronic resistance box 101-b can differ from the programmableelectronic resistance box 101 previously described.

The programmable electronic resistance box 101-b includes a DC motor102-b with current supplied to the DC motor 102-b via an alternator122-b driven by an AC motor 120-b, with the output of the DC motor 102-bcontrolled by the controller 104-b.

In some embodiments, the programmable electronic resistance box 101-bcan interface with an existing cable 904 of the existing weight system902 via a chain drive as described above in reference to FIGS. 1-8, withan existing cable 904 of the existing weight system 902 attaching to achain, such as a chain 114-b, driven by the DC motor 102-b in theprogrammable electronic resistance box 101-b. In this way, theprogrammable electronic resistance box 101-b provides resistance throughthe existing weight system 902 in a similar manner as described above inreference to FIGS. 1-8, with the current driving the motor 102-bcontrolled by the controller 104-b via the host computing device 106allowing for full programmability of the resistance profile experiencedby the user through the existing cable 904. This may very accuratelysimulate the conventional feel provided by the un-retrofitted existingweight system 902.

In the embodiment shown, a take-up real 908 (also referred to as a cabledrum) connects to the existing cable 904 so that, when the DC motor102-b spins in one direction, the existing cable 904 is spooled aroundthe take-up reel 908, and when the user applies a force to overcome theforce of the DC motor 102-b, the cable is unspooled from the take-upreel 908. The take-up reel 908 includes peripheral cable guide groovesto coordinate the spooling and un-spooling of the existing cable 904.The take-up reel spins 908 on a take-up reel support shaft 910 with atake-up reel gear 912. The take-up reel gear 912 is driven by a take-upreel chain 914 rotating about a DC motor gear 326-a coupled to the DCmotor shaft 324-b of the DC motor 102-b. In this way, the programmableelectronic resistance box 101-b can adapt to retrofit a multitude ofexisting systems, as less space and moving parts external to theprogrammable electronic resistance box 101-b are needed to drive anexisting cable 904 of various existing weight systems, such as existingweight system 902.

In some embodiments, a take-up reel cable 916 is attached to and spoolsaround the take-up reel 908. This can allow easier retrofitting ofexisting devices by only requiring that the take-up reel cable 916 beattached to an existing cable 904 of an existing weight system 902, suchas by a removable clip 918, and not requiring any re-spooling of thetake-reel 908.

The controller 104-b monitors the current supplied to the DC motor102-b, making adjustments as necessary to maintain the desiredresistance. The controller 104-b in various embodiments is capable ofmaintaining the required current (resistance) as well as adjusting thetake-up speed (voltage) of the take up reel 908 so that the existingcable 904 does not become slack. In some embodiments, the AC motor 122-bdrives a delta (as opposed to wye)-configured alternator 122-b, theoutput of which drives a DC motor 102-b having a generally higher hightorque-constant. In other embodiments, the DC motor 102-b has a highspeed constant and generally lower torque-constant with a Wye-configuredalternator 122-b.

In some embodiments, the DC motor torque constant, the current suppliedto the DC motor 102, and the turn ratio between the DC motor 102-b andtake-up reel support shaft 910 and the take-up reel 908 diameterdetermines the minimum and maximum weight/resistance. The AC motor 120-band alternator 122-b determine the maximum alternator 122-b output, andthe alternator 122-b will determine the maximum output current to the DCmotor 102-b. Any of these can be changed as necessary for a particularapplication.

For example, in some embodiments, the take-up reel support shaft 910 is1.00 inch in diameter because the take-up reel 908 (i.e., cable drum)has a standard shaft diameter size of 1.00 inch. The take-up reel gear912 in this example is 1 inch bore and disk shaped having a circularouter periphery, and the selection of suitable off-the-shelf pitches isdictated by that bore diameter. For example, a ratio between the DCmotor gear 326-a and the take-up reel 908 diameter, along with thecurrent rating of the DC motor 102, determines the maximum resistancepossible. For example using a take-up reel and DC motor gear 326 with aturn ratio of 1.55 provides 127.5 lbs maximum resistance, adjustable byhalf pound increments, with a 100 Amp DC motor 102 with a torqueconstant of 1.69. Various other gear to take-up reel diameter ratios canbe used with different dc motors to provide different ranges andadjustments of resistance. This and other similar builds implement an 8bit 5V controller, thus yielding 255 different resistance settings, witha voltage per bit step of 0.02 volts.

The cable drum 908 can be implemented in the programmable electronicresistance box 101-b in various sizes, such as with diameters of 8, 4,and 3 inches, and in various shapes, such as disk shaped having acircular outer periphery, or having other outer periphery shapes. Thesediameters work in conjunction with the chain/gear ratios to determinethe resistance spread, and thus the maximum/minimum resistances. Thelarger diameter reduces the effective resistance for a given gear ratiowhile the smaller diameter increases said resistance. The largerdiameter drum also yields a greater cable feed length per revolutionthan the smaller drum.

The selection of a take-up reel cable 916 or the selection to attach andspool an existing cable 904 directly to and around the take-up reel 908can be determined by the following factors: 1) the size of the cabledrum 908, meaning the cable 904, 916 is selected to ensure it fitswithin the cable drum grooves); 2) the maximum resistance to be appliedthrough the cable 108; and 3) cable softness (flexibility). In someembodiments where low resistance products are desired, softer cables areused since the cable's propensity to straighten will tend to un-spoolthe un-tensioned cable 904, 916 off of the drum. Softer cables may alsohave a lower working load. In other embodiments where high resistanceproducts are desired, stiffer cables can be used where DC motor 102-binertia assists in keeping the cable 904, 916 from un-spooling.

In other embodiments, the programmable electronic resistance box 101 caninterface with various other existing weight or resistance trainingsystems in various other ways. For example, the programmable electronicresistance box 101 can interface with one or more cables coupled to aweight lifting bar, with a cable attached to a training arm havinghandles, etc., with each system interfacing with the programmableelectronic resistance box 101 via a chain drive or a take-up reel systemas described above interference to FIGS. 1-10.

It should be appreciated also that various other apparatus and systemsfor coupling the drive of motor 102 to the training interface 108 can beutilized. For example, the cable 108 cam be coupled to a weight liftingbar, such as a bench press bar, and may be oriented in such a way as toallow other resistance training movements not supported by theabove-described tower support structures. These other implementationscan also include coupling the cable or other means connected to motor102 to a fixed handle arm to be used with a work-out bench, to be usedfor bench pressing and other related resistance training movements, etc.In some embodiments, the programmable electronic resistance box 101 mayhave different footprints and sizes to accommodate the variations inexisting exercise equipment. These variations can include, but are notlimited to, dimensions that approximate a weight stack, dimensions thatapproximate a cube, for example to fit under a seat of existing exerciseequipment, or any other dimensions that may enable the programmableelectronic resistance box 101 to engage and interface with otherexisting exercise/resistance training equipment, such as existing weightsystem 902. The programmable electronic resistance box 101 can bedesigned to replace current weight stacks, hydraulic or pneumatic, bow,spring, or rubber band systems, by taking the place of the existingresistance component and simply connecting a cable 108, 916 of theprogrammable electronic resistance box 101 to the existing cable 904 ofthe existing weight system 902, for example.

In yet other embodiments, the programmable electronic resistance box101-b, including the take-up reel drive mechanism can be implemented ina new (not retrofit) system, such as the Electric Weight System 100and/or the programmable electronic resistance box 101, 101-a describedin reference to FIGS. 1-8. In some cases, this can decrease the overallsize of an Electric Weight System, such as System 100, by requiring lessmoving parts external to the programmable electronic resistance box 101and can eliminate the need for space for a chain drive, etc.

In reference to FIGS. 11A-11C, 2 different embodiments of a cablepinching or anti-unspooling system 1100, 1100-a are shown. The cableanti-unspooling systems 1100, 1100-a can be implemented in any ElectricWeight System 100/programmable electronic resistance box 101, utilizinga take-up reel drive, as described above in reference to FIGS. 9-10. Aunique problem with the take-up reel drive of the programmableelectronic resistance box 101 can be solved by the use of one or morecable anti-unspooling systems 1100, 1100-a, as described below.

The Electric Weight System, such as Electric Weight System 100, canprovide a constant force (i.e., resistance) independent of gravitationpull unlike standard weight/resistance systems. This can be beneficial,by providing a constant motor inertia independent of the amount ofresistance applied, particularly at heavy resistances. However, in somecases this can also be problematic, particularly for light/lighterresistances. In this particular embodiment, gravity does not present anysubstantial resistance to pulling of the cable 108, contrary totraditional weight systems in which the weight resists pulling of thecable; rather, in this embodiment the resistance is provided solely theconstant force torque of the motor 102 pulling on the cable 108. Duringcable 108 retraction (in-stroke), if a user releases the cable 108 toallow quick retraction of the cable 108, the cable 108 can become slackduring the retraction period. This may be particularly noticeable at lowresistance levels during which the constant resistance setting may beinsufficient to act as a gravitational pull. A low resistance settingwill only retract the cable 108 at a rate necessary to maintain thatresistance and no more. If the user moves the cable 108 inward fasterthan the set resistance will allow retraction, the cable 108 can becomeslackened. This may take place when the cable 108 is moved inwardly andoutwardly using a take-up reel 908, but may not arise in thelinear/chain drive cable retraction mechanism described above inreference to FIGS. 1-8. If the cable 108 goes slack, it might jump thecable guides causing cross-over cable winding, leading to noise and/orcable damage, and in extreme conditions, completely un-spool off thetake-up reel 908. This condition might also take place when power to theDC motor 102 or alternator 122 is interrupted after the user hasextended the cable 108. If the user releases the cable 108, the cable108 might unspool off of the take-up reel 908. If the user tries to pushthe cable 108 into the programmable electronic resistance box 101, itmay un-spool from the take-up reel 908.

In some embodiments, cable slacking can be detected and a retractingforce can be added to maintain or remove the slack. Since cable 108 byits nature will droop (horizontally due to the gravitational force onthe cable 108) or separate from its pulley guides, such as in pulleys136, 138 (vertically due to the gravitational force on the cable 108),sensing one or both of these conditions can allow for controllercorrection to reduce or eliminate the condition.

One system for reducing or eliminating cable slackening provides acircuit consisting of a cable guide resting on or connected to a plungerthat measures the amount of droop (such as a position indicator). Thesensing element can consist of a variable resistor, variable capacitor,variable inductor, Hall Effect device, etc., with the variable outputbeing converted into a signal suitable to help control the retractingforce via the controller 104. The more the cable 108 droops, the morethe sensing device output varies, and the more retracting force isapplied to the DC motor 102 by the controller 104.

Another sensing system provides an optical sensor to “detect” the cable108 droop or the amount of cable separation in a pulley (sheave) orcable guide. As stated above, the optical sensing output is convertedinto a signal suitable to help control the retracting force communicatedto the controller 104.

The slack detector system can also be combined with a cableanti-unspooling system 1100, 1100-a, to prevent cable unspooling in acable drum system, where inward cable motion is prevented. This iscontrolled, for example, by an electro-mechanical solenoid 1102 or othermechanical device that prevents cable slack from affecting the take-upreel 908. This can be useful for interrupted power conditions as wellwhere, for an extended cable 108, the cable slack correction system1100, 1100-a “pinches” the cable 108 to prevent it from un-spooling offof the take-up reel 908.

Referring now to FIG. 11A, a cable anti-unspooling system 1100 caninclude a spring-loaded hinge 1104 with a first arm 1106 and a secondarm 1108 forming, for example, a V or U shape. A lever arm 1110 of asolenoid 1102 rests on the first arm 1106 of the hinge 1104. In someembodiments, the solenoid 1104 is activated (i.e., with the lever arm1110 of the solenoid 1101 in the retracted position) during good powerconditions and normal exercise allowing the hinge 1104 to open, anddeactivated (i.e., with the lever arm 1110 of the solenoid 1101 in theextended position) during un-powered conditions or when for whateverreason slack detection occurs, forcing the hinge 1104 to close and urgethe cable 108 to remain in position on the take-up reel 908-a.

With reference to FIGS. 11B-11C, another cable anti-unspooling system1100-a includes a solenoid 1102-a aligned to apply a slack correctingforce on the cable 108 when spooled on the take-up reel 908-a. In thisembodiment, a lever arm of 1110-a of the solenoid 1102-a is retractedaway from contact with the cable 108 when the cable 108 is under tensionand power is applied to the system. When power is removed from thesystem (intentionally or otherwise), the solenoid 1102-a is de-energized(either by a loss of power or by the controller 104) and the lever armrests against the take-up reel 908-a, thus preventing the cable 108 fromunspooling from the take-up reel 908-a.

The above embodiments of a cable anti-unspooling system 1100, 1100-a areonly examples. Various other configurations can be provided, such asother cable braking systems for example.

Alternative Embodiments of a Current Source

With reference to FIGS. 12-23, different configurations of various solidstate embodiments) can supply power/current to the DC motor 102. Theseparticular solid state embodiments are implemented in the programmableelectronic resistance housing 101 in place of the alternator 122, ACmotor 120, and related structures and mechanisms. Because these currentsources do not implement an alternator or AC motor, they can be smallerin volume and weigh significantly less than the alternator-AC motorconfigurations described above in association with FIGS. 1-10. In somecases, the space needed for a solid state current supply may be reducedto approximately a cubic foot and the weight can be reduced to 5-10 lbs.(from approximately 50 lbs of the AC motor 120 and the alternator 122embodiment and at least a space of 2 cubic feet). Further, at least somethese types of current sources can require that the DC motor 102 havedifferent operational parameters, such as torque and speed constants forexample. However, in some embodiments, these solid state current sourcesmay provide a smaller resistance range, thus making them better suited,for example, for physical therapy or home use.

Embodiments of the AC motor/alternator configurations described abovecan provide a very robust system, including being extremely durable,long lasting, and very reliable. In some embodiments, the ElectricWeight System 100 implementing an AC motor/alternator configuration hasthe capability of delivering in excess of 1000 W (1.34 hp) to the DCmotor 102 for an unlimited amount of time. However, there are ways togenerate this amount of power in a fully solid state configuration(i.e., eliminating the AC motor-alternator current supply) and maintainthe same or similar system performance, robustness, longevity, etc.

One such embodiment can include an amplifier and circuitry that drivesthe DC motor 102 with a DC voltage derived from voltage rails, and inwhich no flyback diode(s) are required, as described in further detailbelow in reference to FIGS. 12-17. Some embodiments, alternatively oradditionally include circuitry that drives the DC motor 102 directlyfrom voltage rails and utilizes the use of one or more flyback diode(s)as described in further detail below in reference to FIGS. 18-23.

The first solid state embodiment mentioned in the preceding paragraphutilizes a low-voltage high-current variable DC power supply and a lineconverted-120/240 AC input. This DC power supplies/drives the DC motor102. To match the performance of the AC motor-alternator embodimentsdiscussed above, this power supply should deliver up to 100 amps ormore, with a DC voltage output as high as 20 volts or more. Current andvoltage requirements can be adjusted for other motor/transmissioncombinations, but, as discussed above, avoiding high gearing ratios canbe desired in some embodiments. Generally speaking, increasing the gearratio effectively reduces the drive current requirement for a givenresistance, but conversely may provide a less pleasurable userexperience. In some instances, this decrease in the user experience canbe caused by, for example, an increased resistance at the beginning ofthe out-stroke of the cable 108 due to thermal expansion and thencooling of grease in a gear drive, such as a transmission.

There are many ways to convert 120V AC to a variable DC supply. A classD amplifier can be implemented to convert 1 KW or more of variable DC,in a single conversion as described in more detail below in reference toFIGS. 12-17. FIGS. 12-16 and the related descriptions provide singlestage voltage conversion embodiments, and FIG. 17 provides a multistageDC voltage conversion embodiment.

With reference in particular to FIG. 12, a 120V AC power supply 125-a,which can be provided via a standard wall socket, is rectified andfiltered to approximately 160V DC by a rectifier/filter 1104. The outputof the rectifier/filter 1104 is fed into a class D power amplifier 1106,which switches the voltage rail. The output of the class D amplifier1106 is then smoothed by filter 1108, which during smoothing removes theswitched DC signal from the applied signal. The filtered class Damplifier output connects to and drives the DC motor 102-c. In somecases, this implementation may be referred to as a 120V AC directconversion class D amplifier power supply. In some cases, thisconfiguration may require high frequency switching of the various powerdevices, and it utilizes a high rail voltage. However, possiblelife-expectancy risk for the power supply due to high rail voltage canbe reduced and possibly eliminated by, for example, ensuring that theclass D amplifier 1106 operates within its specified safe operating areaand by adjusting the switch timing.

With reference now to FIG. 13, a 120V AC power supply 125-b, is steppeddown to approximately 60V AC or less (or to any value necessary to drivethe highest DC motor 102-e voltage level) by an AC step down transformer1202. The 60V AC output from the step down transformer 1202 is then fullwave rectified and filtered by rectifier/filter 1104-a. A class Damplifier 1106-a then switches the voltage rail of the rectified andfiltered 60V AC and drives the DC motor 102-d via filter 1108-a. In somecases, this implementation may be referred to as a 120V AC step downconversion class D amplifier power supply. In some cases, the AC stepdown transformer 1202 may be large and costly, especially for a 50/60HZ, 1 KW specification. However, this potential downside of such a powersupply can be offset by off-the-shelf drivers that can handle the switchtiming functions of the class D amplifier 1106-a.

With reference now to FIG. 14, a 120V AC power supply 125-c is full waverectified and filtered by a rectifier/filter 1104-b to approximately160V DC. A class D amplifier 1106-b switches the voltage rail of the160V DC and drives a high frequency step down transformer 1302 (DC)which steps down the voltage to, for example, 60V DC. The high frequencystep down transformer 1302 can be driven differentially or singleendedly. This 2.67 voltage reduction increases the current capacity bythe same multiplier (2.67), reducing the power requirements on the classD drivers. The output of the high frequency step down transformer 1302is fed to filter 1108-b, driving the DC motor 102-e. In some cases, thisimplementation may be referred to as a 120V AC class D amplifier stepdown power supply. This embodiment reduces the size of the transformer,by replacing the 50/60 Hz step down transformer 1202 of FIG. 13 with thehigh frequency step down transformer 1302 that passes the high-frequencyclass D PWM signal. In some cases, increasing the frequency of thesignal to be transformed can allow for a reduction in the size of thetransformer itself, for example by replacing a transformer designed totransform 50/60 Hz with a transformer designed to transform 100 KHz ormore. Issues associated with high voltage rail switching may still bepresent in some such embodiments (on/off switching of the various powerdevices), but for such embodiments the driver current requirements canbe reduced because, as a function of the turns ratio of the transformer,the voltage goes down and the current goes up.

With reference now to FIG. 15, a 120V AC power supply 125-d is half waverectified and filtered by positive voltage rectifier/filter 1402 andnegative voltage rectifier/filter 1404 to approximately +−160V DC. Aclass D amplifier 1106-c switches these voltage rails, driving the DCmotor 102-f via filter 1108-c. This configuration can drive the DC motor102-f in both directions, providing the DC motor 102-f has one of thesupply terminals connected to the 0V of the +−160 VDC supply rails. Theability to drive the DC motor 102-f in both directions further aids inmaintaining the requisite motor current, and in some cases further incombination with the dynamic range extender functionality of thecontroller 104, as described in greater detail in reference to FIGS.27-30. In some cases, this implementation may be referred to as a 120VAC split voltage direct conversion class D amplifier power supply. Somesuch embodiments can present the issue of high voltage rails (doubled)and switching requirements. However, in some such embodiments, byprecisely matching the drive/chain system (also referred to as atransmission) to the specific DC motor 102-F and class D amplifier1106-c requirements, an equivalent system is provided, and, in somecases, the resulting system can be particularly tailored for home useand less expensive packaging, shipping, and ease of system movement dueto reductions in system size and weight.

With reference now to FIG. 16, a 120V AC power supply 125-e is steppeddown to approximately 60V AC or less (or to any value necessary to drivethe highest DC motor 102-g voltage level) by an AC step down transformer1202-a. The 60V AC output from the step down transformer 1202-a is thenhalf wave rectified and filtered by positive voltage rectifier/filter1402-a and negative voltage rectifier/filter 1404-a to approximately+−60V DC. A class D amplifier 1106-d then switches the voltage rails ofthe rectified and filtered 60V DC and drives the DC motor 102-g viafilter 1108-d. This configuration can drive the DC motor 102-g in bothdirections, providing the DC motor 102 has one of the supply terminalsconnected to the 0V of the +−60V DC supply rails. The ability to drivethe DC motor 102-g in both directions can further aid in maintaining therequisite motor current. In some cases, the ability to drive the DCmotor 102-g in both directions can be further beneficial in combinationwith the dynamic range extender functionality of the controller 104, asdescribed in greater detail below in reference to FIGS. 27-30. In somecases, this implementation may be referred to as a 120V AC step-downsplit voltage conversion class D amplifier power supply. Some suchembodiments can utilize a relatively large and costly AC step-downtransformer 1202-a, which may be 50/60 Hz and provide 1 KW. However,this potential downside of such a power supply can be offset by use ofoff-the-shelf drivers that can handle the switch timing functions of theclass D amplifier 1106-d.

In reference to FIG. 17, in some embodiments, a 120/240V AC powerprovided by power supply 125-f can be converted to a lower fixed, orsomewhat variable, intermediate voltage via an AC to DC converter 1602.The DC output of the DC converter 1602 can then be converted via avariable DC converter 1604 to provide power having the desiredperformance requirements to drive the DC motor 102-h. For example the ACto DC converter 1602 can include (i) a universal input, such as 85-264VAC or 120/240V AC, and (ii) a fixed output, such as 48V DC (a standardtelephonic level), 24V DC, or even 12 VDC. AC to DC converters withthese can be used as the intermediary (first stage) supply, as long asthey provide an output sufficient to drive the DC motor 102-h. The firststage output, i.e., the output of AC to DC converter 1602, can be theinput for the second stage power supply, i.e., the variable DC converter1604. This second stage power supply can be provided by standardswitching configuration types (buck, boost, buck-boost, etc., as well asa Class D (or Class B) amplifier. The output of this second stage powersupply, i.e., to the DC motor 102-h, can be configured to withstand theDC motor 102-h reversing the drive voltage, such as during the outstroke. In this way, another solid state power supply for driving the DCmotor 102-h can be implemented to drive the programmable electronicresistance housing 101 or the Electric Weight System 100.

Referring now to FIG. 18, one common way of driving a DC motor 102-i iswith Pulse Width Modulation (PWM), such as via a PMW driver 1802, withone terminal of the DC motor 102-i connected to a DC power source andthe other terminal alternately switched (through which an electriccircuit is made, then broken). The DC power source may originate from anAC power supply 125-g, such as a 120V AC power supply, and then berectified and filtered by a rectifier 1104-c. The DC output of therectifier 1104-c can be fed into the PWM driver 1802 to provide aswitching source for the other terminal of the DC motor 102-i. A flybackdiode 1804 connected across the DC motor 102-i terminals shunts theflyback energy during the switch off time. This flyback energy comesfrom the collapsing magnetic field of the inductor that compromises theDC motor 102-i. When a flyback diode 1804 is connected to the DC motor102-i, turning the DC motor shaft in the preferred direction (i.e., thedirection of rotation when voltage is applied to the DC motor 102-i sothat the flyback diode 1804 is reverse biased) causes the DC motor 102-ito generate a voltage proportional to its rotational speed while theflyback diode 1804 looks like an open circuit. This presents noimpediment to rotating the motor shaft. Turning the DC motor 102-i inthe non-preferred direction causes the DC motor 102-i to still generatea voltage proportional to the rotational speed of the shaft, but thatvoltage is shorted by the flyback diode 1804 (acting like a shortcircuit to the DC motor 102-i). Further, attempting to increase motorshaft speed (still in the non-preferred direction) is met with anincreased force requirement as the DC motor 102-i seeks to output stillmore voltage across the flyback diode 1804. Removing the flyback diode1804 allows the DC motor 102-i to be turned easily in either direction.

In another embodiment, the DC motor 102-i can be connected to a PWMdriver 1802, without a flyback diode 1804. If the DC motor 102-i is PWMdriven with no flyback diode 1804 connected, the DC motor 102-i will notturn. Further, while still being driven by a PWM signal, the DC motor102-can be easy to turn in either direction regardless of the pulsewidth.

Accordingly, in some embodiments, a DC motor, such as DC motor 102-i,can deliver a constant torque by keeping the motor current constant. APWM driver 1802 can be provided to monitor motor current and make driveadjustments to maintain a set (constant) current (torque) to the DCmotor 102-i driven in the preferred direction (i.e., via a flyback diode1804 connected to the DC motor terminals). Further, a PWM driven DCmotor 102-i can be turned easily in both directions if the flyback diode1804 is not connected.

Thus, if a flyback diode 1804 is connected to the DC motor 102-i bycircuitry that can determine contact time (i.e., the time when theflyback diode 1804 is connected to or disconnected from the DC motor102-i terminals), the torque (resistance) can be controlled in thenon-preferred direction. Further, if the amount of fly-back connectionis properly modulated, the DC motor 102-i can exhibit a constant torquewhile turning in either direction, i.e., while driving a load (providingresistance to a user) or being pulled in the opposite direction by theload. This can occur during the in-stroke and out-stroke of a cable 108driven by the programmable electronic resistance housing 101 or theElectric Weight System 100 for example. In some cases, maintaining aconstant torque can include maintaining a torque level within +−10%,+−20%, etc. of the desired torque value.

Turning now to FIG. 19, a DC motor 102-j is powered by an AC powersupply 125-h (120/240V AC) rectified by a rectifier/filter 1104-d. Theoutput of the DC motor 102-j, specifically the current outputcorresponding to a resistance value, is controlled via a PWM driver1802-a. One specific way of implementing a PWM driver with a flybackdiode is to put a resistor 1906 in series with a flyback diode 1804-aand modulate a short across the resistor 1906 using a silicon switch,such as a FET 1908, all connected in parallel with the DC motor 102-j.In some cases, flyback modulation circuitry 1910, which receives controlinformation from a controller 104 via isolated signaling, is connectedto a gate of the FET 1908 and the flyback diode 1804-a. As a result, theflyback modulation circuitry 1910 can be completely connected orpartially connected depending on the state of the switched FET 1908.Thus, when the user is performing an inward stroke, the FET 1908 can beswitched fully on, continuously presenting the flyback to the DC motor102-j. The PWM signal, from the PMW driver 1802-a connected to the DCmotor 102-j, drives the DC motor 102-j in such a way as to maintain thedesired current, and thus torque. When the user is performing an outwardstroke, the PWM signal still drives the DC motor 102-j to maintain thedesired current with the addition that the FET 1908 will be modulated toalso maintain the desired current flow through the DC motor 102-j. Insome cases, unrestrained flyback energy is taken into consideration whenimplementing this configuration.

Referring now to FIG. 20, a DC motor 102-k is powered by an AC powersupply 125-i (120/240V AC) rectified by a rectifier/filter 1104-e. Theoutput of the DC motor 102-k, specifically the current outputcorresponding to a resistance value, is controlled via a PWM driver1802-b. Another way of implementing a PWM driver with a flyback diode isto use an FET 1908-a as the flyback, i.e., by connecting both terminalsof the flyback modulation circuitry 1910-a to the FET 1908-a, with theFET 1908-a connected in parallel with the DC motor 102-k. This can beaccomplished by turning on the FET 1908-a during periods when flybacksuppression is desired and turning off the FET 1908-a when not desired.For instance, during the in-stroke, the FET 1908-a is turned on wheneverthe PWM driver 1802-b is off. During the out-stroke, the FET 1908-a ismodulated in such a way as to assist the PWM driver 1802-b in maintainthe desired current through the DC motor 102-k. In some cases,unrestrained flyback energy can be taken into consideration whenimplementing this configuration. Also in some cases, the FET 1908-a canbe configured without an intrinsic drain-source diode, as it can act asa full-time flyback diode regardless of the on/off state of the FET1908-a.

Referring now to FIG. 21, a DC motor 102-l is powered by an AC powersupply 125-j (120/240V AC) rectified by a rectifier/filter 1104-f. Theoutput of the DC motor 102-l, specifically the current outputcorresponding to a resistance value, is controlled via a PWM driver1802-c. Another way of implementing a PWM driver with a flyback diode isto use a combination of resistors, e.g., resistors 2102, 2104, 2106,and/2108 each shortable by FETs 2110, 2112, 2114, and 2116 connected inseries with a flyback diode 1804-b, all in parallel with the DC motor102-l. The resistors 2102, 2104, 2106, and/2108 can help limit the(possibly high) unrestricted flyback voltage from the DC motor 102-lwhile aiding the FETs 2110, 2112, 2114, and 2116 in managing powerdissipation. In other implementations, different numbers of resistorsand FETs (and different values) can be used depending on the driverequirements of the DC motor 102-l.

With reference to FIG. 22, a particular modified embodiment of FIG. 20has a DC motor 102-m powered by an AC power supply 125-k, which is(120/240V AC) rectified by a rectifier/filter 1104-g. Modulated flybackcircuitry 1910-b is electrically isolated from, and controlled by, thecontroller 104. The controller 104 as shown is configured with theon-board modulated flyback circuitry 1910-b, which can include a powersupply, with the controller 104 directly in parallel with the DC motor102-m. This configuration allows PWM control to be sent to isolatedswitching so that the DC motor 102-m is PWM driven by a PWM electricallyisolated high side switch 2220. The PWM electrically isolated high sideswitch 2220 is connected in series between the rectifier/filter 1104-gand the DC motor 102-m. In some cases, the control electronic signalsare referenced to ground. In addition, an I-sense module 2222 (currentsensor such a shunt resistor), can be connected in parallel with thecontroller 104 and connected to the DC motor 102-m to sense and providea current output of the DC motor 102-m to the modulated flybackcircuitry 1910-b. Current information allows the modulated flybackcircuitry 1910-b to accurately adjust the current supplied to the DCmotor 102-m via the high side switch 2220 to maintain and/or adjust adesired resistance provided by the DC motor 102-m.

Referring to FIG. 23, another particular modified embodiment of FIG. 20has a DC motor 102-n powered by an AC power supply 125-l, which is(120/240V AC) rectified by a rectifier/filter 1104-h. Modulated flybackcircuitry 1910-c is electrically isolated from, and controlled by, thecontroller 104. The controller 104 as shown is configured with theon-board modulated flyback circuitry 1910-c, which can include a powersupply, with the controller 104 directly in parallel with the DC motor102-n. This configuration allows PWM control to be sent to isolatedswitching so that the DC motor 102-n is PWM driven by a PWM electricallyisolated low side switch 2220-a. The PWM electrically isolated low sideswitch 2220-a is connected in series between the rectifier/filter 1104-gand the DC motor 102-m. In some cases, the control electronic signalsare referenced to ground. In addition, an I-sense module 2222-a (currentsensor such a shunt resistor), can be connected in parallel with thecontroller 104 and connected to the DC motor 102-m on the high side tosense and provide a current output of the DC motor 102-n to themodulated flyback circuitry 1910-c. Current information allows themodulated flyback circuitry 1910-c to accurately adjust the currentsupplied to the DC motor 102-n via the low side switch 2220-a tomaintain and/or adjust a desired resistance provided by the DC motor102-n. In some cases, high side and low side PWM switchingimplementations can be interchangeable with similar results. Variationsin design may determine isolation requirements; for example, the flybackFET can be driven by current sensing such that current may becontinuously sensed as opposed to sampled during the PWM drive time.

Some issues with solid state embodiments may include silicon durabilityof the PWM driver 1802 and heat dissipation in the fly-back elements,such as FETs 2110, 2112, 2114, and/or 2116, resistors 2102, 2104, 2106,and/or 2108, etc. However, the technique of modulated flyback controlcan be particularly useful in reducing or eliminating these issues formotors having fairly low current (and high voltage) requirement. Thesemotors will generally include a speed reducer box, such as a torqueconverter, etc. for adequate performance.

In some embodiments, a high current low voltage motor can be driven byfirst generating the low(er) voltage, and then applying the PWM andmodulated flyback techniques to the DC motor. Doing so can provide lessstress on the driving silicon as well as the flyback resistor (if used).

Control System of an Electric Weight System

With reference to FIG. 24, a functional block diagram 2400 of theElectric Weight System 100 is shown. An AC power source 125-m, such as a120/240V AC input from a standard household socket, supplies AC power toa relay/contactor 2404 via AC receptacle on/off switch 2402. Therelay/controller 2404 powers the AC motor 120-c, which in turnmechanically drives the alternator 122-c, such as by belt 124 or shaftcoupler 802. The electrical output of the alternator 122-c drives the DCmotor 102-o.

The AC power source 125-m also is converted to DC power via a an AC/DCpower supply 2412, which powers a controller board 2414, which caninclude some or all of the functionality of controller 104 and/or PCBboard 304. The controller board 2414 implements a micro-processor andother circuitry to implement control over the Electric Weight System 100as will be described below. A more detailed description of thecontroller board 2414 is described in greater detail in reference toFIG. 26.

The controller board 2414 receives input from the position pot(potentiometer) 115-c, which is connected to a cable drive shaft, suchas DC motor shaft 324 and/or drive shaft 332. The input from theposition pot 115-c allows the controller board 2414 to determine theposition and/or velocity of the cable 108, 904, 916 supplying theexercise resistance to the user, and control the DC motor 102-o based onthat information and input from the host computing device 106, which isin 2-way communication with the controller board 2414. The user canprogram/interact with the host computing device 106 to set a desiredresistance profile, such as an elastometric profile, a forced negativeprofile, a pyramid profile, etc. The controller board 2414 can implementthe desired resistance profile via controlling the current supplied fromthe alternator 122-c to the DC motor 102-o via a PWM driver (not shown)implemented via the controller board 2414. The PWM driver receivesreal-time current information from the output of alternator 122-c via acurrent sensor 2426, and by adjusting the duty cycle of the controlsignal sent to the alternator 122-c, can adjust the current supplied tothe DC motor 102-o, and hence can adjust the resistance felt by the uservia cable 108.

A Dynamic Range Extender (DRE) 2428 is connected in series with thecurrent sensor 2428 and the DC motor 102-o, and monitors the DC motor102-o voltage, including voltage applied to the DC motor 102-o via thealternator 122-c. As the DC motor 102-o voltage tends towards negative,thus indicating that the motor is moving in the non-preferred directionof rotation, the DRE 2428 enables resistive elements, either resistorsor FETs having suitable internal resistance, in the current path betweenthe alternator 122-c and the DC motor 102-o. The more the voltage wantsto go negative, the more resistance the DRE 2428 will inject into thecurrent path via opening one or more FETs to place one or more resistorsin the current path, or closing one or more FETS if the FTES have asuitable internal resistance. In either case, this total resistanceallows the desired current to flow through the DC motor 102-o so thatthe desired resistance is experienced. In other words, the DRE 2428adjusts the operation of the DC motor 102-o so that the user canexperience the desired resistance through cable 108 without any unwantedelectrical feedback from the in-stroke of the cable 108 due to reversebiasing of the DC motor 102-o. The maximum resistance the DRE 2428 willenable can be found experimentally, and depends on motor characteristicsand maximum desired cable speed in the outward direction. In some cases,the resistance applied by the DRE 2428 can be dynamically adjusted so asto minimize power and heat dissipation thought the resistive elements,while marinating unwanted resistance increases in the in-stroke of cable108. The operation and functionality of the dynamic range extender 2428will be described in greater detail below in reference to FIGS. 27-30.

The controller board 2414 also is in two-way communication with a cablelock system 2420, which controls operation of the DC motor 102-o bylocking and unlocking the DC motor shaft 324 during power-up. Theoperation of the cable lock system 2420 will be described in greaterdetail in reference to FIG. 25 below.

In implementations of the Electric Weight System 100 that utilize atake-up reel 908, a cable slack detection system 2422 may communicatewith the controller board 2414. The cable slack detection system 2422may provide the controller board 2414 with information identifying whenthe cable 108 is slack, or becoming slack, usually on the in-stroke ofthe take-up reel 908. In response to receiving this information, thecontroller board 2414 can adjust the speed of the DC motor 102-o tocompensate for the slackening. The functionality and operation of thecable slack detection system 2422 can be implemented in combination withor separately from the cable anti-unspooling system 1100 as describedabove in reference to FIGS. 11A-11C.

In some embodiments, the controller board 2414 may also be in two-waycommunication with an automatic cable height positioner 2424. Thecontroller board 2414 may, upon receiving a cable height input from theuser via the host computing device 106, signal the automatic cableheight adjustor 2424 to move the adjustable bracket 148 either up ordown depending on the current position of the adjustable bracket 148.Automatic cable height positioner 2424 may utilize a threaded rod andrunning nut configuration to automatically adjust the height of cable108, for example, by moving the adjustable bracket 148 up and down alonga threaded rod parallel to the second support member 128 via the runningnut. In some cases, another position potentiometer can be used todetermine the position of the adjustable bracket 148. In otherimplementations, the automatic cable height adjustor can use a chaindrive mechanism to adjust the height of the adjustable bracket 148. Inyet other implementations, the chain drive mechanism can be coupled witha switch used to find the zero position of the adjustable bracket 148and an optical sensor can detect the precise height/position of theadjustable bracket 148. The optical sensor can operate by shining lightthrough the chain and determining position by counting the light pulsesup or down as the chain moves. The controller board 2414, upon receivinga cable height input from the user via the host computing device 106,signals the automatic cable height adjustor 2424 to move the adjustablebracket 148 either up or down depending on the current position of theadjustable bracket 148. Other similar configurations are alsocontemplated to allow automatic cable height adjustments.

In reference to FIG. 25, a block functional diagram of a cable locksystem 2420-a, is shown. A cable lock 2502 includes a ratchet and pawlsystem, as is well known in the art. The ratchet and pawl system engagesand disengages so that the cable 108 may only be extended when theElectric Weight System 100 is ON. The ratchet and pawl system allows theDC motor 102 to retract the cable 108 regardless of the position of thepawl. As a result, the ratchet/pawl prevents the motor shaft 324 fromturning in the non-preferred direction when activated. The ratchet andpawl system is controlled by the controller board 2414/controller 104and a lock/unlock detect switch indicates back to the controller board2414 the state of the DC motor shaft 324.

The DC motor shaft 324 drives a power transmission 2506 and driveinterface 2508, which may include some or all of thecomponents/functionality as described in reference to FIGS. 1-8 for thelinear chain drive, or as described in reference to FIGS. 9-10 for thetake-up reel drive system. The drive interface 2508 is connected to theposition pot (potentiometer) 115, which sends information indicative ofcable position and/or velocity to the controller board 2414. In someembodiments, the drive interface 2508 can be connected to an existingcable 904 of an existing weight machine 902 via a cable connector 2512.In other embodiments, other cable lock systems may be utilized toaccomplish a similar safety shut-off functionality. Otherimplementations can utilize off-the-shelf power-off cable lockingmechanisms or mechanisms that lock the cable 108 by “pinning” the DCmotor shaft 324, such as by placing discrete holes in the DC motor shaft324 that accept a solenoid plunger or the sort.

In reference to FIG. 26, a block diagram of a controllerboard/controller 2600, such as controller 104 or controller board 2414described above, is shown. The following description of controller 2600is intended to be an example of a control mechanism for the systemsdescribed previously, such as the Electric Weight System 100, theprogrammable electronic resistance box 101, and as an exampleimplementation of the functional block diagram 2400 of an ElectricWeight System. However, other control mechanisms will accomplish thesame purpose of the controller 2600, and the scope of the claimedsubject matter includes those alternative embodiments.

The controller 2600, and the various components associated with thecontroller 2600, are powered via an AC/DC Power supply 2412 by 12V DC(nominally, but can be as high as 24V DC) that is received by a DC/DCconverter 2616 via power connectors 2615, where the DC/DC converter 2616converts the 12V DC to 5V DC. Other embodiments have higher AC/DCvoltages converted to +12 VDC and +5 VDC.

In the current embodiment, controller 2600 includes a micro controller2602 that can send and receive information from USB connector 2604, RS232 cable 2606, and can receive information from a position potconnector 2608 connected to potentiometer 115 and current sensor inputs2610 connected to current sensor 2426 (which can also include I sensemodule 2222). The micro controller 2602 communicates with the hostcomputing device 106 via an RS 232 cable 2606, which may be an exampleof communication cable 127. The RS 232 cable 2606 connects to thecontroller board 2600 via an RS 232 connector 2612 which is connected inseries with an RS 232 converter 2614. The RS 232 converter 2614conditions signals sent from the host computing device 106 via RS 232cable 2606 and communicates with micro controller 2602. The RS 232 cable2606 in conjunction with the RS 232 connector 2612 and the RS 232converter 2614 transfer commands and data (for example turn on and turnoff commands), resistance values, resistance profile settings, ramptimes, etc. to the micro controller 2602. In some cases, the USBconnector can be used to update the firmware of the micro controller2602.

The micro controller 2602 uses that information to adjust the currentsupplied to the alternator 122 via the rotor flyback diode 2622. Thecurrent input into the DC motor 102 is adjusted via a PWM generator2622. The current sensor inputs 2610 receive a current value from thecurrent sensor 2426, indicative of the DC motor 102 current. Thiscurrent value is amplified by a current sensor amplifier 2618 and sentto an error amplifier 2620, which compares the received current valuefrom the current sensor 2426 with a current level set by the user viahost computing device 106. The current level set via the host computingdevice 106 corresponds to a resistance value, and is communicated to theerror amplifier 2620 by the micro controller 2602. The error amplifier2620 adjusts the current value to correspond to the desired resistanceand communicates this to the PWM generator 2622. The error amplifier2620 uses the results of the comparison of the received current from thecurrent sensor 2416 and the current level set by the host computingdevice 106 to adjust the duty cycle of the PWM generator 2622, and henceadjust the current supplied to the alternator 122 via the rotor driver(FET) 2630. Because the PWM generator 2622 will cause the rotor driver(FET) 2630 to turn off during off times of the set duty cycle, a rotorflyback diode 2632 is connected to the rotor driver (FET) 2630 to dealwith the off cycle power, such as by shunting the rotor flyback energyto ground or to the rotor voltage supply depending on whether high sideor low side switching is being used.

The micro controller 2602 further adjusts the current supplied to thealternator 122 and thus the DC motor 102 according to positioninformation of the cable 108 sensed by the potentiometer 115, or otherposition sensing devices, and communicated to the micro controller 2602via the position pot connector 2608. The micro controller 2602 adjuststhe current supplied to the DC motor 102 via the PWM generator 2622, byadjusting the duty cycle of the PWM generator 2622 output. When anelastomeric or reverse elastomeric resistance profile is selected viahost computing device 106, the micro controller 2602 in conjunction withposition pot 115 and the elastometric digital pot 2624 adjust the inputto the PWM generator 2622. In this way, the various resistance profilesdescribed herein can generally be implemented.

The micro controller 2602 further communicates with an analogue switch2625 that switches between the outward and inward resistances (i.e.Resistance Out and Resistance In). Further, the outputs of the analogswitch 2625 are fed to a programmable RC network that allows fordiscrete turn-around time adjustment (i.e. how fast or slow theresistance values change between In and Out). The micro-controller 2602determines the direction of the cable 108 and throws the analogueswitch(es) 2625 corresponding to the proper resistance value (ResistanceIn during cable retraction and Resistance Out during cable extension).In this way the micro-controller 2602 simply has to set-and-forget twoPWM registers (Resistance In and Resistance Out) until the user stopsexercising, for example, for the stepped and resistance elastometricprofiles.

An AC motor contactor/relay connector 2634 controls the operation, i.e.the ON and OFF operation, of the AC motor 120 via instructions from acontactor driver 2636. The contactor driver 2636 receives power ON andpower OFF commands from the micro controller 2602, which receives suchinstructions from the host computing device 106. Further, the microcontroller 2602 can turn off the DC motor 102 when, for example, thesystem hasn't been used for a while (there is currently a 30 secondtimer—if the machine runs without event for 30 seconds, the microcontroller will turn off the AC motor 120). In such case, the microcontroller 2602 will inform the host computing device 106 that the ACmotor 120 has been turned off. In other embodiments, the microcontroller 2602 turns on the AC motor 120 and goes through a calibrationroutine before communicating with the host computing device 106.

A rotor power relay 2626 is also in communication with the microcontroller 2602. The rotor power relay 2626 enables power to be suppliedto the rotor via the rotor driver FET 2630. The rotor power relay 2626can also cut power to the alternator 122 when one or more electricalcomponents exceed pre-set operating boundaries, such as when the DCmotor 102 exceeds 100 amps, or if motor current exceeds userspecification (for example, if the rotor driver FET 2630 shortcircuits). This condition can be detected by the micro controller 2602via input received via the current sensing inputs 2610 from the currentsensor 2426. Upon detecting this condition, the micro controller 2606signals to switch the rotor power relay 2626 to OFF, thus preventingdamage or further damage from happening to the Electric Weight System100 and/or the programmable electronic box 101, or as a safety feature,preventing possible injury to the user.

The micro controller 2602, upon instructions from the host computingdevice 106 to power down, instructs the cable lock solenoid 2628 toengage the ratchet and pawl system to lock the motor shaft 324 so thatthe position of the cable 108 cannot change when the Electric WeightSystem 100 is powered OFF. This prevents cable extraction during timeswhen the cable 108 isn't under tension (note that power off tension ispresent by having the cable fully retracted before power is removed).For the linear chain drive system, having the cable played out isn't aproblem, more of a nuisance (and this can be prevented by locking thecable). For the cable drum 908 system it can be a hazard—pulling theun-tensioned cable 108 out can un-spool the cable 108 from the cabledrum and further possibly short electrical components or exposedelectrical contacts within the programmable electronic resistance box101. In extreme cases, the cable 108 can un-spool completely off thecable drum 908, thereby requiring a complete cable/drum reassembly (andre-calibration of the position pot 115).

Providing Broad Dynamic Range for DC Motor

Resistance provided by the Electric Weight System 100 is programmableand can be directionally constant and/or positionally variable,regardless of the direction of motion (i.e. cable 108 being pulledoutward or retracting inward). During the outward stroke (cable 108extension), the DC motor 102 moves in the non-preferred direction ofrotation, and thus against the alternator-generated voltage thatsupplies current to the DC motor 102, and will generate a voltage in theopposite polarity of the supplied alternator-generated voltage. Thisnegative motor-generated voltage is directly proportional in amplitudeto the cable 108 velocity, with the voltage amplitude being determinedby the motor voltage constant, Kv. Motor spinning force is applied suchthat pulling the cable 108, in the take-up reel embodiment as descriedabove in reference to FIGS. 9-11C, spins the take-up reel 908, therebyspinning the take-up reel support shaft 910, thereby spinning the DCmotor shaft 324 and hence the DC motor 102 in the non-preferreddirection of rotation. This motor spinning generates the reversepolarity voltage. In the linear chain drive embodiments described abovein reference to FIGS. 1-8, a similar phenomenon can occur.

If the negative voltage is of sufficient amplitude to forward bias thealternator rectifier diodes, it is possible the user will feel anincrease in resistance, since the DC motor 102 will generate its owncurrent (thus resistance) through the diodes. The amplitude of themotor-generated current is a function of the alternator-generated supplyvoltage minus the motor-generated negative voltage, which is cablevelocity dependent. As the cable 108 is drawn outward, the controllerwill reduce supply voltage to the DC motor 102 depending on the speed ofthe cable 108, and in order to maintain the desired current. Once thesupply voltage reaches zero, motor voltage takes over and the (motor)voltage goes negative. In a given configuration, such as a particularmotor/shaft gear ratio, if the cable is drawn out slowly enough, the(motor-generated) negative voltage can be insufficient to overcome thesupplied voltage resulting in little or no increase in resistance. Ifthe cable is drawn out fast enough to generate enough reverse voltage to(in turn) generate motor current, and this current exceeds the setcurrent, there can be an increase, in resistance.

This increase in resistance can happen when the negative voltagegenerated by the DC motor 102 is greater than the alternator-generatedsupply voltage to the motor (which tends towards zero) and that negativevoltage difference is of sufficient amplitude to forward bias thealternator rectifier diodes, resulting in a current through the DC motor102 that is larger than the user set current supplied by thealternator-generated voltage. This motor induced increase in currentincreases the resistance to the user, in a potentially undesirable wayas the resistance experienced thorough cable 108 may be greater than theresistance set by the user.

When a motor shaft, such as DC motor shaft 324, is rotated by anexternal force a voltage is generated at the DC motor 102 terminals,such that the DC motor 102 generates voltage. The voltage polaritydepends on the direction of rotation. If the motor terminals are open,i.e. not connected to anything, the DC motor 102 is relatively easy tospin and the DC motor 102 generates voltage, the amplitude beingdirectly proportional to the speed of the DC motor shaft 324. ThisRPM/volt relationship is called the motor voltage constant or Kv. If adiode is placed across the DC motor 102 terminals and the DC motor 102is spun in the direction that would generate a positive voltage to thecathode (thus negative to the anode, so the diode is reverse biased),the DC motor 102 would still be relatively easy to spin. The applicantbelieves this is because the diode acts as an electrical open circuitproviding no current path.

If the diode connection is reversed to be across the DC motor 102electrical terminals so that the motor spin generates a positive voltageto the anode and negative to the cathode, such as a forward biased diodeconnection, the DC motor 102 is (much) harder to spin. The applicantbelieves this is because the diode is limiting the motor voltage outputto its forward biased level and providing a current path. Amotor-generated current flows through the diode back into the DC motor102; this motor-generated-and-absorbed power resists (or loads) thespinning force. To make the DC motor 102 spin faster, an increase in thespinning force is required. Since the motor-generated voltage amplitudeis limited by the diode, the motor-generated current will increaseproportional to the (motor spinning) shaft RPM. In other words, thefaster the DC motor 102 is trying to be spun, the harder it is to spinthe DC motor 102.

The increase to the resistance adds an alternator-generated voltagecomponent into the example above, but the unwanted effect ofmotor-generated current should be clear. The manifestation of increasedresistance can depend on motor voltage constant Kv, the speed of thecable 108 extension, and/or the shaft/motor gear coupling. The Kv can bedetermined or is specified, the maximum cable 108 speed can be definedas a constant, such as an acceptable maximum cable speed (generallydetermined through experimentation), and the shaft/motor gear ratios canbe considered separately:

-   -   1) First Case—for a given Kv and a maximum cable velocity and        where the user has the mechanical advantage, i.e. when the        first/second drive gear 330, 352 size is smaller than the DC        motor gear 326 size, the increase in resistance generally does        not occur. In this case, motor speed is slower than drive shaft        332 speed, and the DC motor 102 is generally not turned fast        enough to generate sufficient negative voltage to forward bias        the rectifier diodes. The drive circuitry boundaries are usually        not exceeded so that the controller 104 always has control of        the motor current.    -   2) Second Case—for a given Kv and a maximum cable velocity and        where the DC motor 102 has the mechanical advantage, i.e. when        the first/second drive gear 330, 352 size is larger than the DC        motor gear 326 size, the increase in resistance can be manifest        at lower resistance values and is felt as an increase in user        programmed resistance. This increased resistance is proportional        to cable speed. In this case, DC motor 102 speed is faster than        drive shaft 332 speed, thus turning the DC motor 102 fast enough        to generate sufficient negative voltage to forward bias the        rectifier diodes. Drive circuitry operational boundaries can be        exceeded, and the controller 104 is not able to adjust the motor        current, which is, for the duration of outward motion, generated        by the DC motor 102, not the alternator 122.

For a given maximum cable extension velocity and as resistance isincreased, such as when voltage supplied to the motor is increased, theundesired dynamic increase in resistance can be decreased. The point,referred to herein as the null point, at which the undesired dynamicincrease in resistance is no longer present, and thus not felt, is thesetting where the motor-generated negative voltage is less than thealternator-generated supply voltage, and the motor generated voltagetherefore does not forward bias the rectifier diodes. The null point islocated at the resistance value where the maximum cable extensionvelocity no longer changes the desired motor current. The null point isthe lowest set resistance value, or corresponding weight, where theundesired dynamic increase in resistance is not present, thus the userwill not notice a cable-velocity-induced increase in resistance (sinceit does not exist). The undesired dynamic increase in resistance isusually not present for resistance levels exceeding the null pointbecause the user is generally unable to move the cable with sufficientvelocity to cause the DC motor 102 to spin fast enough to generateenough negative voltage to exceed the supplied voltage, and thus doesnot forward bias the alternator diodes. When manifest, the undesireddynamic increase in resistance is increasingly noticeable at the lowerranges of resistance due to the lower motor supply voltage coupled withthe tendency and ability of the user to extend/retract the cable quicklyat lower resistances.

Particularly in the second case described above and depending on the Kv,maximum cable velocity and configuration, 31% or more of the lowerresistance settings may lie below the null point. In some circumstances,it can be desirable to implement an adjustment to recover theseresistance settings, thus increasing the dynamic resistance range of theElectric Weight System 100.

With reference now to FIG. 27, a normal biased DC motor 102 is shownpulling against the user and/or retracting the cable 108. Rectifierdiodes 2702 and 2704 are connected in series with the DC motor 102, andconnected in parallel with rectifier diodes 2706, 2708, connected inparallel with rectifier diodes 2710, 2712. The alternator supplies3-phase current to the DC motor 102 via connections in between rectifierdiodes 2702 and 2704, in between rectifier diodes 2706 and 2708, and inbetween 2710 and 2712. In this case, the rectifier diodes 2702-2712rectify the 3-phase waveform of current supplied from the alternator 122and appear reverse biased to the DC motor 102. In this way, thecontroller 104 is still able to control the current supplied to the DCmotor.

For the first case described above and depending on the motor used (andparticularly with motors having a low Kv), the undesired dynamicincrease in resistance may not be present or felt because cable velocitymay not make the DC motor 102 spin fast enough to generate sufficientnegative voltage to ultimately forward bias the rectifier diodes2702-2712, so the current, i.e., resistance, always remains within thecontrollable range.

Referring to FIG. 28, a reverse biased DC motor 102 is shown beingpulled by the user and moving against the preferred rotationaldirection, or extending the cable 108. Rectifier diodes 2802 and 2804are connected in series with the DC motor 102, and connected in parallelwith rectifier diodes 2806, 2808, connected in parallel with rectifierdiodes 2810, 2812. The alternator supplies 3-phase current to the DCmotor 102 via connections in between rectifier diodes 2802 and 2804, inbetween rectifier diodes 2806 and 2808, and in between 2810 and 2812.The DC motor 102, in this configuration, generates a reverse voltagethat subtracts from the supplied voltage, this voltage tending towardszero as the cable is being extended (pulled) (where voltages moves tozero proportional to the speed at which the cable is extended). In thiscase, the rectifier diodes 2802-2812 rectify the 3-phase waveform ofcurrent supplied from the alternator 122 and appear forward biased tothe DC motor 102 when the reverse voltage generated by the DC motor 102is of sufficient magnitude in relation to the supplied voltage from thealternator 122. When the rectifier diodes are forward biased, this ineffect shorts out the DC motor 102 leads. As this happens, the supplyvoltage from the alternator 122 will reduce to zero in an effort tocontrol the increase in resistance.

For the second case described above the undesired dynamic increase inresistance is generally felt because cable velocity can make the DCmotor 102 spin fast enough to generate sufficient negative voltage toultimately forward bias the rectifier diodes, effectively shorting themotor leads together, thus increasing motor load. This rise in currentcannot be compensated for by the drive circuitry/controller 104, and theuser feels the additional resistance of the outward stroke.

This condition may be adjusted for by placing a resistor, typically alow value resistor, in series with the DC motor 102. The preferredresistance value is as low as possible since the resistor will dissipatepower due to the current to/from the motor flowing through thisresistor, thus generating heat. The minimum resistor value can bedetermined iteratively by inserting a resistor in the DC motor102/alternator 122 connection path, generating maximum cable velocity(outward) at a desired user resistance, and inspecting the results. Ifthe current rises beyond the (user) set value, increase the resistorvalue. When the current stays constant for all cable velocities, theminimum resistance value for that user setting has been found. Analternative testing method is to monitor the alternator 122 output, oreven the DC motor 122 voltage, while running the same stimulation. If,during maximum cable outward excursion, the voltage at the alternator122, or DC motor 102, swings negative, the resistance value can beincreased; if the alternator 122, or DC motor 102, voltage swings to 0Vor remains positive (it can go negative but below the rectifier diodeforward drops) the resistance value can prevent the loading of the DCmotor 102.

This adjusted resistor value can be reduced as the (user) machineresistance is increased, and may be set to zero when the user resistanceis set to or beyond the null point. This may be particularly useful inreducing adjusted resistor heat generation/dissipation. By usingdiscrete resistors and FET switches, preferably low Rds-on the devices,controlled by a separate micro controller, for example, a switchedresistive network can be configured to optimize performance and reduceheat. An analogue to digital converter is connected to the output of theDC motor 102 and can trigger the micro controller to close or open oneor more FET switches, thus increasing or decreasing resistance in thealternator 122/DC motor 102 current path, based on a voltage of the DCmotor 102. In some cases, the ADC can be incorporated into thecontroller 104. In some cases, the DC motor voltage is monitored 20times per second when power is supplied to the DC motor 102 (i.e., whenthere is current in the alternator 122/DC motor 102 current path).

In other embodiments, a variable resistance between the DC motor102/alternator 122 current path can be controlled by a PWM driver. Forexample, by driving a FET (or other switching device) in parallel with aresistor via a PWM driver, a variable resistance can be achieved bychanging the duty cycle of the PWM driver. In a similar manner asdescribed above, an ADC connected to the DC motor 102 can provide asignal to a controller, such as a micro controller or controller 104,that indicates when resistance is needed in the current path (to preventloading of the DC motor 102). This occurs when the DC motor voltagestarts to go negative or approaches a negative value. The microcontroller can then configure a duty cycle of the PWM driver to add anappropriate resistance to prevent the DC motor voltage from goingnegative. In yet other embodiments, either of the above describedsystems, or others, can detect other DC motor characteristics, outputs,etc. that can indicate that the DC motor voltage is tending towards anegative value. These systems can then account for the negative voltagetrend in a similar fashion as described above.

For example, let the null point be 30.67 amps (40 lbs.) with a buildconfiguration of 0.5 lbs. per step, ranging from 0.5 lbs to 127.5 lbs.The maximum cable velocity and Kv are known. Using the procedure toadjust the resistor value (above), adjusted resistor minimum values aredetermined experimentally to be:

-   -   1) 1 Ohm—eliminate the undesired dynamic increase in resistance        at 0.5 lbs. (motor current=0.3833 amps)    -   2) 0.5 Ohms—eliminate the undesired dynamic increase in        resistance at 8 lbs. (6.13 amps)    -   3) 0.25 Ohms—eliminate the undesired dynamic increase in        resistance at 16 lbs. (12.27 amps)    -   4) 0.125 Ohms—eliminate the undesired dynamic increase in        resistance at 24 lbs. (18.78 amps)    -   5) 0.0625 Ohms—eliminate the undesired dynamic increase in        resistance at 32 lbs. (24.53 amps)

At 1 Ohm and 0.3833 amps, the adjusted resistor power dissipation wouldbe 0.147 Watts, ranging up to 37.6 Watts at 6.13 amps. If the adjustedvalue remains at 1 Ohm, power dissipation at 10 amps (roughly 13 lbs.)would be 100 Watts. The null point adjusted power dissipation would be940.6 Watts, and at 127.5 lbs. would be 9565 Watts.

Using the derived adjusted resistor values for the different userresistance ranges up to the null point yields the following adjustedpower dissipations:

-   -   1) 1 Ohm—from 0.383 amps to 6.13 amps, 0.147 Watts to 37.6 Watts    -   2) 0.5 Ohm—from 6.13 amps to 12.27 amps, 18.79 Watts to 75.3        Watts    -   3) 0.25 Ohm—from 12.27 amps to 18.78 amps, 37.6 Watts to 88.1        Watts    -   4) 0.125 Ohm—from 18.78 amps to 24.53 amps, 44.1 Watts to 75.2        Watts    -   5) 0.0625 Ohm—from 24.53 amps to 30.67 amps, 37.6 Watts to 58.8        Watts

The power dissipation can be further reduced by only allowing currentflow through the adjusted resistors during the outward stroke. Since theDC motor 102 does not generate voltage during the inward stroke(preferred rotational direction), adjusted resistance is not necessary.By shorting the adjustment during the inward stroke, current does notflow through the adjustment, and there is no, or only minimal, powerdissipation at that time. If the inward stroke time equals the outwardstroke time, the power dissipations would be half. Furthermore,increased motor current generally happens during the inward stroke (thenegative), so the adjusted resistors are spared having to dissipate that(higher) current.

Maintaining a short circuit across the adjusted network from the nullpoint up to the maximum user resistance setting reduces the powerdissipation (and thus the required power to run the system). Forexample, if a shorting FET has an Rds-on of 0.0045 Ohm maximum, thenetwork power dissipation at the null point would be 4.23 Watts; at 98amps it would be 43.2 Watts. If two of these FET devices wereparalleled, the power dissipation would be 2.12 and 21.6 Wattsrespectively. This can provide the advantage of maximizing energyefficiency and reducing power dissipation. In addition, the adjustedresistor presence can aid in drive circuitry smoothing, particularly atthe lower resistance levels.

With reference now to FIG. 29, a DC motor 102 is shown with a rectifiercircuit rectifying a supply current from an alternator 122. Rectifierdiodes 2902 and 2904 are connected in series with the DC motor 102, andconnected in parallel with rectifier diodes 2906, 2908, connected inparallel with rectifier diodes 2910, 2912. The alternator supplies3-phase current to the DC motor 102 via connections in between rectifierdiodes 2902 and 2904, in between rectifier diodes 2906 and 2908, and inbetween rectifier diodes 2910 and 2912. A bank of 5 resistors, R1 2914,R2 2916, R3 2918, R4 2920, and R5 2922 are all connected in parallelwith each other, the bank of resistors connected in series with the DCmotor 102 and a low side current sensor 2924, which is connected inseries with R1 2914. 5 switches, SW1 2926, SW2 2928, SW3 2930, SW4 2932,and SW5 2934 are connected to the resistor bank in such a way as toadjust which resistor(s) is actually connected in the path from the lowside current sensor 2924 to the DC motor 102. Opening all the switches,e.g., SW1 2926-SW5 2934, connects only R1 2914 between the low sidecurrent sensor 2924 and the DC motor 102. Closing SW1 2926, e.g.,connects R1 2914 and R2 2916 between the low side current sensor 2924and the DC motor 102. Opening SW3 2930, SW4 3932, and SW5 2934 with SW12926 and SW2 2928 closed, for example, connects R1 2914, R2 2916, and R32918 between the low side current sensor 2924 and the DC motor 102, andso on.

In some embodiments, R1 2914=1 Ohm, R2 2916=1 Ohm; R3 2918=0.5 Ohm; R42920=0.25 Ohm; and R5 2922=0.125 Ohm. However, other resistor values maybe used for various reasons, such as the current requirements of the DCmotor 102, for example. In this embodiment, with SW1 2926-SW5 2934 open,the adjusted resistance is 1.0 Ohm, and with SW1 2926-SW5 2934 closed,the adjusted value is 0.5 Ohm. With this implementation, the minimumresistance can be implemented for a given weight/resistance level set bythe user to maximize power efficiency while providing an accurate andun-affected consistent weight/resistance level to the user.

With reference now to FIG. 30, a DC motor 102 is shown with a rectifiercircuit rectifying a supply current from an alternator 122. Rectifierdiodes 3002 and 3004 are connected in series with the DC motor 102, andconnected in parallel with rectifier diodes 2906, 2908, connected inparallel with rectifier diodes 3010, 3012. The alternator supplies3-phase current to the DC motor 102 via connections in between rectifierdiodes 3002 and 3004, in between rectifier diodes 3006 and 3008, and inbetween rectifier diodes 3010 and 3012. A bank of 4 resistors, R1 3014,R2 3016, R3 3017, and R4 3019 are connected in series with each other,the bank of resistors connected in series with the DC motor 102 and alow side current sensor 3024, which is connected in series with R1 3014.3 switches, SW1 3018, SW2 3020, and SW3 3022 are connected to theresistor bank in such a way as to allow R1 3014, R2 3016, or R1 3014 andR2 3016 to be connected in the path from the low side current sensor3024 to the DC motor 102.

In some embodiments, R1 3014=R2 3016=R3 3017=R4 3019=0.25 Ohm. However,other resistor values can also be used. In this embodiment, closing SW13018 places 1.0 Ohm in series with the DC motor 102. Closing SW2 3020and SW3 3022 while leaving SW1 3018 open, places 0.5 Ohm in series withthe DC motor 102. Closing SW1 3018 and SW3 3022 shorts the resistornetwork, such as to eliminate all excess power dissipated in theresistor bank when the velocity of the motor is equal to or above thenull point.

It should be appreciated that the above resistor configurations are onlyexamples. Other such means are also contemplated herein.

In some embodiments, the resistor/switch combinations can be replacedwith a FET having the same on resistance as the resistor being switchedinto the circuit. For example, replacing the 1 Ohm resistor with a FEThaving an Rds-on of 1 Ohm, the second 1 Ohm resistor/switch with a FEThaving an Rds_on of 1 Ohm and/or replacing the 0.5 Ohm resistor/switchwith a FET having an Rds-on of 0.5 Ohms, etc. In this way, the resistoris eliminated and only one or more switches (FETs) are used.

Certain embodiments of the resistance apparatus, system and methods aredescribed with reference to methods, apparatus (systems), and computerprogram products that can be implemented by computer programinstructions. These computer program instructions can be provided to aprocessor of a general purpose computer, special purpose computer,mobile computing device, or other programmable data processing apparatusto produce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the acts specified herein totransform data from a first state to a second state.

These computer program instructions can be stored in a computer-readablememory that can direct a computer or other programmable data processingapparatus to operate in a particular manner, such that the instructionsstored in the computer-readable memory produce an article of manufactureincluding instruction means which implement the acts specified herein.The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the acts specified herein.

The various illustrative logical blocks, modules, and algorithm stepsdescribed in connection with the embodiments disclosed herein can beimplemented as electronic hardware, computer software, or combinationsof both. To clearly illustrate this interchangeability of hardware andsoftware, various illustrative components, blocks, modules, and stepshave been described generally in terms of their functionality. Whethersuch functionality is implemented as hardware or software depends uponthe particular application and design constraints imposed on the overallsystem. The described functionality can be implemented in varying waysfor each particular application, but such implementation decisionsshould not be interpreted as causing a departure from the scope of thedisclosure.

The various illustrative logical blocks and modules described inconnection with the embodiments disclosed herein can be implemented orperformed with a general purpose processor, a digital signal processor(DSP), an application specific integrated circuit (ASIC), a fieldprogrammable gate array (FPGA) or other programmable logic device,discrete gate or transistor logic, discrete hardware components, or anycombination thereof designed to perform the functions described herein.A general-purpose processor can be a microprocessor, but in thealternative, the processor can be any conventional processor,controller, microcontroller, or state machine. A processor can also beimplemented as a combination of computing devices such as, for example,a combination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration.

The blocks of the methods and algorithms described in connection withthe embodiments disclosed herein can be embodied directly in hardware,in a software module executed by a processor, or in a combination of thetwo. A software module can reside in RAM memory, flash memory, ROMmemory, EPROM memory, EEPROM memory, registers, a hard disk, a removabledisk, a CD-ROM, or any other form of computer-readable storage mediumknown in the art. An exemplary storage medium is coupled to a processorsuch that the processor can read information from, and write informationto, the storage medium. In the alternative, the storage medium can beintegral to the processor. The processor and the storage medium canreside in an ASIC. The ASIC can reside in a computer terminal. In thealternative, the processor and the storage medium can reside as discretecomponents in a computer terminal.

Depending on the embodiment, certain acts, events, or functions of anyof the methods described herein can be performed in a differentsequence, can be added, merged, or left out all together (e.g., not alldescribed acts or events are necessary for the practice of the method).Moreover, in certain embodiments, acts or events can be performedconcurrently such as, for example, through multi-threaded processing,interrupt processing, or multiple processors or processor cores, ratherthan sequentially. Moreover, in certain embodiments, acts or events canbe performed on alternate tiers within the architecture.

With reference to FIG. 73, each component of the host 3140 is connectedto a system bus 3150, providing a set of hardware lines used for datatransfer among the components of a computer or processing system. Alsoconnected to the bus 3150 are additional components 3144 of theresistance system, such as additional memory storage, digitalprocessors, network adapters, and I/O devices. The bus 3150 isessentially a shared conduit connecting different elements of a computersystem (e.g., processor, disk storage, memory, input/output ports,network ports, etc.) and enabling transfer of information between theelements. An I/O device interface 3142 is attached to system bus 3150 inorder to connect various input and output devices (e.g., keyboard,mouse, touch-screens, displays, printers, speakers, etc.) to theresistance system. A network interface 3148 allows the computer toconnect to various other devices attached to a network. A memory 3152provides volatile storage for computer software instructions 3158 anddata 3160 used to implement methods employed by the system disclosedherein. Disk storage 3154 provides non-volatile storage for computersoftware instructions 3159 and data 3161 used to implement an embodimentof the present disclosure. A central processor unit 31346 is alsoattached to system bus 3150 and provides for the execution of computerinstructions.

In some embodiment, the processor routines 3158 and data 3160 are acomputer program product, including a computer readable medium (e.g., aremovable storage medium such as one or more DVDROM's, CD-ROM's,diskettes, tapes, etc.) that provides at least a portion of the softwareinstructions for the system. A computer program product that combinesroutines 58 and data 60 may be installed by any suitable softwareinstallation procedure, as is well known in the art. In certainembodiments, at least a portion of the software instructions may also bedownloaded over a cable, communication, and/or wireless connection.

Referring now to FIG. 31, a programmable electronic resistance box 101includes at least one force-generating apparatus controlled by acontroller 104. Controller 104 is communicatively coupled to one or morehost computer devices 3108, 3110, 3112, which may be external to theprogrammable electronic resistance box 101. The controller 104 includesa microprocessor configured to, for example, receive position signals,receive messages from host computing devices, process messages from hostcomputing devices, and send message to host computing devices. Hostcomputing devices 3108, 3110, 3112 may communicate over variousprotocols such as, for example, RS-232, UDP, TCP/IP and/or HTTP.

The host computing device 3108, 3110, 3112 generally includes an inputinterface, for example, a keyboard or keypad 3107 such that exerciseprofiles can be generated, a non-transitory memory configured topersistently store and recall exercise profiles, a communicationinterface configured to send and receive exercise data, and a display3109, 3111, 3113 configured to present exercise related information. Thecontroller 104 may have one or more communication interfaces such as,for example, a network interface, a serial connection interface, ashort-wavelength radio transmissions interface, such as a bluetoothwireless interface, configured to facilitate communication with hostcomputing devices and/or with a communication network such as theInternet.

A computing network or similar digital processing environment in whichthe system and method disclosed can be implemented. The present systemsand methods can also run on different computing architectures that mayinclude a LAN, WAN, stand-alone PC, stand-alone mobile device, and/or onboard processing components. The computing environment 3100 of FIG. 31is representative of many specific computing arrangements that cansupport the system and method disclosed. In some embodiments, the hostcomputing device 3108 communicates with the controller over a serialconnection. The software on the host computing device 3108 isimplemented to run in a java runtime environment on various operatingsystems such as, for example Windows®, or UNIX®, and in any hardwarehaving enough power to support timely operation of software. In someinstances, host computer devices are deployed as virtual instancesrather than physical computing devices.

A router 3114, such as for example, the Peplink® Multi Wan Router candistribute traffic inside a local area network, and/or to and fromdevices external to the local area network, such as data stores hostedremotely 3120 and connected to the Internet 3116. In some deployments,persistent data stores 3118, 3120 are relational databases, xmldatabases, or the like.

On reading this disclosure, those of skill in the art will recognizethat many of the components discussed as separate units may be combinedinto one unit and an individual unit may be split into several differentunits. Further, the various functions could be contained in one computeror spread over several networked computers and/or devices. Theidentified components may be upgraded and replaced as associatedtechnology improves and advances are made in computing technology.

At initial power-on, the controller 104 (See FIG. 1) checks for storedconfiguration data. If configuration data is present, the controller 104sends the configuration data to the host 106 (See FIG. 1), then enterthe main firmware program. If configuration data is not present, acontroller routine loops in the enter configuration mode until aconfiguration command is received. In certain implementations, while inthe enter configuration mode, a visual indicator can be provided, suchas, for example, an on-board LED. The controller will not respond tocommands from the host 106 and waits for the byte stream ($20$40) tocontinue with the configuration process.

In some instances, configuration information is stored in thecontroller's onboard, non-volatile EEPROM and/or an alternativepersistent memory store. Configuration data can include, for example,shaft to position potentiometer gear ratio, motor sprocket 326 toothcount, shaft sprocket 912 tooth count, position potentiometer zeroposition, and take up reel 908 diameter. In some embodiments, the shaft912 directly drives the position potentiometer 115 resulting in a one toone ratio. The motor drive shaft sprocket 912 tooth count and take-upreel 908 diameter information can be used to determine the absoluteminimum and maximum resistances. In some embodiments, a positionpotentiometer zero position identifies to the controller 104 theappropriate cable 108 position at power up. A controller routine can beimplemented that retracts a cable 108 to obtain the positionpotentiometer zero position. The user type can determine a mode ofoperation and a host computing device 106 user interface tailored to aparticular user configuration, such as, for example, a single userconfiguration or a multiple user configuration. The firmware version ofthe controller 104 firmware can be used, in part, to determine whensoftware or firmware upgrades are appropriate.

Referring now to FIG. 32, an example of configuration interface on thehost 106 is displayed. The host 106 opens a serial communication portand establishes communication with the controller 104. In someembodiments, communication is established via an ethernet connection, anRS-232 connection, or wireless connection. In certain implementations, aconnect button 3202 directs the host to send the byte stream ($20$40) tothe controller 104. The controller 104 then enters a configuration loopand the byte stream ($40) is sent to the host 106. Edit boxes can bedisplayed to collect configuration data such as, for example, motorsprocket tooth 326 count 3204, shaft sprocket 912 tooth count 3206, andtake up reel 908 diameter 3210. User-specific configurations can be setthrough selection of user interfaces controls such as selection buttons3212. In some embodiments, the position potentiometer zero position isset by adjusting the position potentiometer to a candidate position,executing a get position operation upon detection of a Get Positionbutton 3214 press event, obtaining the current position from theposition potentiometer 115 displaying the position 3208, and saving thedisplayed position as the position potentiometer zero position in thecontroller EEPROM upon detection of a Set Position button 3216 pressevent. In some embodiments, a visual indicator can change its displaypattern or state, for example, an LED strobe pattern is altered, untilthe remainder of the configuration process is completed. When the hostdetects a Finished button 3218 press event, the values are marshaled andsent to the controller. During the configuration loop, in someinstances, the controller polls the serial port or other engagedcommunication port awaiting the following commands, echoing withacknowledgments;

a) $42/xy - Motor Sprocket Tooth Count (Echo $42); b) $43/xy - ShaftSprocket Tooth Count (Echo $43); c) $44/xy - Take Up Reel Diameter (Echo$44); d) $45/xy - User Type (Echo $45/xx); e) $4F - Exit configurationloop (Echo $4F); f) User Type ($45/xy) - $00-Single, $01-Multi,$02-Multi w/default.In other embodiments, configuration information might include sprocketdiameter or tooth count for the chain drive (as opposed to cable drum908) system.

The controller 104 parses the byte stream and stores the information inonboard, non-volatile EEPROM and/or an alternative persistent memorystore. The controller 104 then proceeds to an operational mode, enteringthe main controller 104 firmware program. In some embodiments, thevisual indicator display pattern and/or state is changed to indicate thechange in operational mode.

In some instances, access to the resistance system is conditioned on theentering of user credentials. Referring now to FIG. 33 and FIG. 34,username and password prompts are displayed 3302, 3304 configured toreceive user credentials. When the host detects the press event for theLogin button 3306, the credentials are marshaled and sent to thecontroller 104 for validation with credentials stored in thecontroller's onboard, non-volatile EEPROM and/or an alternativepersistent memory store. In some embodiments, credentials are storedexternal to the programmable electronic resistance box 101, either onthe host 106 and/or on a networked data store 3118, 3120 (see FIG. 31)communicatively coupled to the host 106. In some embodiments, a createaccount control 3308 is displayed allowing a user to create an account.When the host 106 detects the click event for a create account control3308, a new display window 3400 is displayed. In other embodiments, useraccounts are created through an interface accessible to only specificusers, for example, a trainer. Referring now to FIG. 35 and FIG. 36,exercise history associated with a one or more users can be stored onthe host 106, on the controller 104, and/or in a remote data store 3118,3120 communicatively coupled to the host. In some systems, exercisehistory can be organized by exercise 3500, and include exercise specificdata such as, for example, repetition and stroke specific information3600. Referring again to FIG. 33, a Just Exercise button 3310 can beenabled that allows a user to access the user screen and operate theresistance system without logging into a user account.

In certain embodiments, the host supports the storage of and togglingbetween multiple users during an exercise session. Referring now to FIG.37, users can design and save exercise profiles 3702. These profiles3702 can be organized, for example, in a hierarchical folder structureby adding folders and displayed in a stored profile pane 3700. In someembodiments, when the host computing device 106 detects the Add button3704 press event, a folder 3705 is created. In some instances, thefolder can be dragged from one level to another level, and/or todifferent locations within a level. When the host computing device 106detects the press event for the Delete button 3706, the selectedexercise profile or folder will be deleted. If the folder containsexercise profiles and folders, all contents will also be deleted. Thehost will open a selected exercise profile and populate the values inthe exercise profile pane 3900 (see FIG. 39) when an Open button 3708press event is detected by the host 106. When a Save button 3710 pressevent is detected, the current exercise profile displayed in the storedprofiles pane 3700 will be saved and an exercise profile will be addedto the folder structure in the stored profiles pane 3700. In someembodiments, the host computing device 106 can store exercise profilesfor multiple users in an onboard persistent data store and/or on anetworked data store communicatively coupled to the host. Referring nowto FIG. 38, when a toggle button 3802 press event is detected, the userdisplay 3804 moves from one user to another. The stored exercise profilepane 3700 and the exercise profile pane 3900 (not shown) are updatedwith the hierarchical structure and exercise profiles for the user.

Referring now to FIG. 39, a main operational window is displayed. Insome embodiments, the window includes a stored profiles pane 3700 and anexercise profile pane 3900. The stored profile pane 3700 has beendescribed previously. The exercise profile pane may include variousprofile parameters and/or status indicators. A full stroke indicator3902 can dynamically display the stroke as an exercise is performed. Theindicator can also act as a status bar providing information to a usersuch as, for example, that stroke calibration has not yet occurred. Oneor more exercise modes can be selected individually or in combination3904. Repetitions 3906 can be displayed as they occur during exerciseperformance. When a Save button 3908 press event is detected, the hostcomputing device 106 marshals and sends the current exercise profilevalues to the controller 104, which can store them in RAM, in on-board,non-volatile EEPROM, and/or in an alternative persistent memory store.When a History button 3910 press event is detected, the exercise historyfor the user is displayed as described previously. Depending on theexercise mode selected, numeric parameter prompts 3912, 3914 may bedisplayed to obtain parameters used to implement one or more of theselected exercise modes 3904. In some embodiments, these parameters canbe set by, for example, directly entering a value, by using anincrement/decrement control 3916, 3918, by using a slider control 3920,3921, and/or by other data entry means.

In some instances, the presence of the On button 3922 in the exerciseprofile pane 3900 indicates that the power on sequence was successful,but that the exercise initialization routines have not occurred. In someembodiments, the power on sequence can include one or more of thefollowing activities:

a) initialize controller (registers and peripherals);

b) blink On-board LED n times;

c) activate contactor (AC motor 120 on);

d) enable rotor voltage;

e) perform system calibration, disengage locking solenoid;

f) ramp up DC motor 102 current to minimum resistance level;

g) get and store retracted cable 108 position;

h) engage locking solenoid;

i) ramp DC current to zero; and

j) deactivate contactor (AC motor 120 off).

Upon detecting the button press event for the On button 3922, the hostcomputing device 106 sends a command ($20$27) to the controller 104 toperform exercise initialization activities. These can include, forexample, activating the contactor, enabling rotor voltage, ramping to aminimum resistance level, disengaging the locking solenoid, andinitializing an end-of-exercise timer in firmware. Referring now to FIG.40, once initialized, the On button 3922 (see FIG. 39) is no longervisible, and the Calibrate button 4002 and Off button 4004 are madevisible. The controller 104 sends SFA to the host computing device 106when the controller 104 detects cable movement, then waits to receivethe ‘Begin Exercise’ command ($20$25) from the host 106. When the hostcomputing device 106 receives SFA from the controller 104, the hostcomputing device 106 marshals and sends the relevant exercise profilevalues to the controller 104. The controller 104 stores one or morevalues in RAM and sends and acknowledgement to the host computing device106.

Referring now to FIG. 73, the host then displays the exercise screen.Detection of the button press event for the Off button 4004 directs thehost 106 to send a command to the controller 104 to performde-initialization procedures.

In some systems, the stroke range for an exercise is defined through theexecution of a calibration routine. Stroke is the distance between thecalibrated stroke start value and stroke stop value, which correlateswith the range of motion for a given exercise. Stroke length can vary byexercise, and a stroke will likely fall within the full range of motionfor the resistance mechanism. Referring now to FIG. 41 and FIG. 42, thehost computing device 106 displays the calibration options 4100 upondetection of a Calibrate button 4002 (see FIG. 40) press event. In someimplementations, calibration can be manual 4102 and/or machine-assisted4104. In the case of a manual calibration, the stroke start value 4202and stroke stop value 4204 can be entered manually. In some instances,the current position value is displayed and can provide guidance forsetting the values manually 4206. In the case of machine-assistedcalibration, the user may be prompted to engage in a series ofstroke-related actions that generate values used by the controller 104to determine the stroke start value and the stroke stop value.

Referring now to FIG. 43, a machine-assisted calibration method isprovided. The host computing device 106 sends a Stroke Calibration Startcommand ($20$21) to the controller 4302. Upon detection of the request4304, the controller 104 responds with an acknowledgement ACK ($00). Insome instances, an indication to begin stroke related actions isprovided. When the controller 104 detects that the cable 108 has changedposition 4306, position byte data is streamed to the host computingdevice 4308. When the host computing device 106 determines the positiondata values are stable 4310, the host computing device 106 sends aStroke Calibration End command ($20$22) 4312 to the controller 104, andthe controller 104 responds with an acknowledgement ACK ($00) upondetection of the command 4314. The last received Position Byte prior toissuing the Stroke Calibration End command is determined 4316 and thestroke start value is set to the last received Position Byte value 4318.This value is written to the low register 4320. The host computingdevice 106 may wait for a defined period of time and then listen forincoming position data. In some embodiments, the wait time is displayedby the host computing device 106 and/or an indication is provided tobegin stroke related actions upon detection of position data. When thehost computing device 106 determines the position data values are stable4310, the host computing device 106 sends an Exercise End Command($20$26) to the controller 104, and the controller 104 responds with anacknowledgement ACK ($00) upon receipt of the command. The last receivedposition byte prior to issuing the Exercise End Command is determined4330 and the stroke stop value is set to the last received position bytevalue 4332. This value is written to the high register 4334.

Once stroke calibration is complete, a full stroke indicator can beprovided. Referring now to FIG. 44, the host computing device 106obtains the stroke start value and stroke stop value from the host 106resident memory 4402, 4404. In some instances, the absolute position ofthe resistance mechanism, in this example the absolute cable position,is obtained 4406 by the controller 104 from the potentiometer 115. Thehost computing device 106 then calculates the relative cable position4408 using an algorithm such as, for example, ((AbsolutePosition)−(Stroke Start))/((Stroke Start)−(Stroke Stop)), which can thenbe used to plot the relative cable position along a calibrated strokerange continuum 4410, 4412.

With full programmability of resistance values relative to cable 108position and/or time during the outstroke and in-stroke of the cable108, multiple resistance profiles can be applied simultaneously and incombination during a single exercise. One such resistance profileincludes negative training, such that the negative weight exceeds theability of the user to move the weight in the positive direction. Theresistance system 100 allows configuration of the positive out-strokeresistance level such that the user can move into the position to beginthe negative cycle. Once this position is attained, the user holds thatposition and the resistance system increases the negative resistanceuntil cable retraction is detected, which can, in some instances, beindicated by inward cable movement. In some embodiments, once cableretraction is detected, a negative resistance value is set for the fulllength of the in-stroke, regardless of cable retraction speed. In otherembodiments, resistance may be ramped up, including, in some cases,multiple times during the in-stroke, when cable retraction speed equals0 or otherwise falls below a set minimum level. Ramp time to cablemotion can be configured, which can control how fast resistance isincreased prior to the detection of cable retraction. Cable retractionspeed can also be programmed.

Referring now to FIG. 45, the host computing device 106 detects theselection of a static forced negative exercise profile 4502. Inresponse, the host computing device 106 displays a prompt for theresistance out 4504, which is the force to be applied during the outstroke, and displays a prompt for the pounds per second 4506, which candefine the rate of increase to the resistance level upon reaching thestroke stop position. Upon detecting the button press event for the Savebutton 3908, the host computing device 106 marshals and sends the valuesto the controller 104, which can store them in RAM, in on-board,non-volatile EEPROM, and/or an alternative persistent memory store.

In some embodiments, the resistance system 100 maintains a constantresistance level without accounting for retraction speed. Referring nowto FIG. 46 and FIG. 47, the controller 104 obtains the resistance out4702, pounds per second 4704, stroke start value 4706, and the strokestop value 4708 from EEPROM or an alternative persistent memory store.In this example, the controller 104 receives the absolute cable position4710 from the potentiometer 115 and calculates the relative cableposition. In some embodiments, the controller 104 detects if the strokestop position is reached 4602 by determining if the relative cableposition is equal to the stroke stop value 4602-a. If the controller 104detects this condition, the resistance level is increased 4604 at therate defined by the pounds per second value 4604-a. The user may attemptto hold the position as the machine increases the resistance. In thisexample, until cable retraction is detected 4606, resistance continuesto increase 4604 at the rate defined by the pounds per second value4604-a. In some implementations, upon detection of cable retraction4606, the resistance level can be held constant 4608 until thecontroller 104 detects the stroke start position is obtained 4610-a. Theresistance level is then set to the resistance out value 4612.

In some embodiments, the resistance system 100 varies resistance levelsin response to variations in retraction speed. Referring now to FIG. 48,the host computing device 106 detects the selection of a static forcednegative exercise profile 4502 (see FIG. 45). In response, the hostcomputing device 106 displays a prompt for the resistance out 4504,which is the force to be applied during the out stroke, and displays aprompt for the pounds per second 4506, which defines the rate ofincrease to the resistance level upon reaching the stroke stop position.A prompt for retraction rate 4802 is also included. This value can beused to define the retraction speed threshold, under which, thecontroller 104 will increase resistance. Upon detecting the button pressevent for the Save button 3908, the host computing device 106 marshalsand sends the values to the controller 104, which can store them in RAM,in on-board, non-volatile EEPROM, and/or in an alternative persistentmemory store.

Referring now to FIG. 49 and FIG. 50, the controller 104 obtains theresistance out 4702, pounds per second 4704, retraction rate 5002,stroke start value 4708, and the stroke stop value from EEPROM or analternative persistent memory store. In this example, the controller 104receives the absolute cable position 4710 from the potentiometer 115 andcalculates the relative cable position. In some embodiments, thecontroller 104 detects if the stroke stop position is reached 4602 bydetermining if the relative cable position is equal to the stroke stopvalue 4602-a. If the controller 104 detects this condition, resistanceis increased 4604 at the rate defined by the pounds per second value4604-a. The user may attempt to hold the position as the machineincreases the resistance. In this example, until cable retraction isdetected 4606, resistance continues to increase 4604 at the rate definedby the pounds per second value 4604-a. In addition, the retractionspeed, in this example, the cable retraction speed, is obtained 5004. Insome instances, the controller 104 determines cable speed by summing aseries of position samples obtained over time x from the positionpotentiometer and dividing that sum by x. In some implementations, upondetection of a slow absolute cable retraction rate 4902, such as a rateless than that the defined cable retraction rate 4902-a, the controller104 will increase the resistance level 4604. In some implementations,the resistance can increase until the controller 104 detects the strokestart position is obtained 4610. The resistance level is then set to theresistance out 4612.

Referring now to FIG. 51A, a forced negative resistance profile 5100defined by applied resistance or weight in pounds on the vertical axisand stroke position on the horizontal axis is shown. In someembodiments, a first and second start stroke position 5102, 5104 can bepre-defined by the host computing device 106 such as where the cable 108is extended 12 inches from a rest position, or calibrated eithermanually or automatically as described above in reference to FIGS.39-43. Further, an end stroke position 5106 may be similarlypredetermined by the host computing device 106, for example, tocorrespond to a cable extension of 118 inches, or calibrated. For astroke position of the cable 108 between 0 extension 5108, and a startstroke position 5102, which may be referred to as an initializationstroke 5110, the resistance in weight applied to the cable 108 may beless than the full or maximum profile resistance value, such as 40 lbsas shown. In other cases, the resistance applied during theinitialization stroke 5110 may be 0, or any percentage of the full ormaximum profile resistance value, according to a predetermined valueprofile value.

Out-stroke resistance is set 5112 to 60 lbs. for example. Thisresistance is applied through cable 108 from the start stroke position5102 to the end stroke position 5106. At the end stroke position 5106,the resistance will then ramp up at a rate chosen by a user, or apredetermined rate if so selected, to an in-stroke resistance level5114, which in the embodiment shown, is 80 lbs. In some cases thein-stroke resistance level 5114 may be defined by the user, or may bedetermined/set when cable retraction is detected, thus possiblyindicating that the user can no longer maintain a force equal to theapplied resistance. In this case, where the user selects the variablein-stroke mode of the forced negative resistance training program, theuser may stop the cable from retracting further mid in-stroke of cable108, at stroke position 1516. In this case, the resistance level may befurther ramped up until cable retraction is further detected, at thesame rate applied in the first ramping, or possibly a different rate,for example a slower rate to account for user fatigue. Once the cable108 begins to re-tract, a second in-stroke resistance level 1518 may bemaintained until the start stroke position 5104 is reached, whereuponthe resistance level will be dropped back to the out-stroke resistancelevel 5112.

With reference now to FIG. 51B, a forced negative resistance profile5150 defined by applied resistance or weight in pounds on the verticalaxis and time on the horizontal axis corresponding to the forcednegative resistance profile 5100 is shown. At time 5152, whichcorresponds to the end stroke position 5106, the resistance is at theout-stroke resistance level 5112. The resistance then ramps up until atime 5154 according to a user defined/selected ramp rate, represented byramp 5156, to the in-stroke resistance level 5114. From time 5152 totime 5154, the cable 108 maintains at the end stroke position 5106. Fromtime 5154 to 5158, which corresponds to stroke position 5116, thein-stroke resistance level 5114 is maintained. At time 5158, noretraction, or a retraction rate below a set minimum rate, is detected,and the resistance is ramped up, represented by ramp 5160 until time5162 when cable 108 retraction, or retraction above a minimum set rate,is detected. At time 5162, the resistance is maintained at the secondin-stroke resistance level 5118 until the cable 108 reaches the startstroke position 5104, where resistance is reset to the out-strokeresistance level 5112. In this way, a forced negative resistance profilemay be implemented by the resistance system. The above profile is onlyan example of profiles programmable and implementable by the resistancesystem.

In some embodiments, resistance can be programmable for continuouslyvariable functions such as, for example, elastometrics. In someinstances, this can be done by a controller 104 control board 2414. Inan elastometric exercise profile, resistance changes continuously andlinearly from the stroke start value to the stroke end value, thenreverses from the stroke end value to the stroke start value. Referringnow to FIG. 52, the programmable electronic weight machine hostcomputing device 106 detects the selection of an elastometric exerciseprofile 5202. The host displays an edit box for the minimum resistance5206 and the maximum resistance 5208. For this elastometric profile, theminimum resistance corresponds to the resistance at the stroke startposition, and the maximum resistance corresponds to the resistance atthe stroke stop position. In some instances, the host computing device106 can detect the selection of the reverse elastometrics checkbox 5204,which inverts the resistance-to-position relationship just described.Upon detecting the button press event for the Save button 3908, the hostcomputing device 106 marshals and sends the entered values, includingthe max cable speed, to the controller 104, which can store them in RAM,in on-board, non-volatile EEPROM, and/or in an alternative persistentmemory store.

In some instances, an elastometric engine implemented in firmwareutilizes the user resistance stroke range values and resistance valuessuch that any beginning/ending resistance within the range of themachine is accommodated from the minimum stroke length to the maximumexcursion. Referring now to FIG. 53, the elastometric engine obtains oneor more resistance level values 5302 such as, for example, the minimumresistance 5302-a and maximum resistance 5302-b, and one or more strokerange values 5304 such as, for example, the stroke start value 5304-aand the stroke stop value 5304-b. In certain embodiments, the strokerange values can be obtained from the calibration routine. In anotherembodiment, the stroke range values can be obtained by averaging startstroke and end stroke values of two or more turn-around events, with aturnaround event defined as either an in-out-in series of strokes and/oran out-in-out series of strokes. Resistance values can be normalizedacross the stroke range 5306 and the resistance values set in accordancewith the normalization calculation 5308.

In some embodiments, an amplitude adjustable triangle waveform generatorcircuit normalizes resistance through the stroke range of motion. Thepeak-to-peak amplitude of a triangle wave can be controlled by two DCinputs, the values of which are derived from on-board DACs. In someinstances, the values are filtered pulse width modulation signals (PWM).The Stroke-Low PWM determines the lower amplitude of the triangle wavewhile the Stroke-High PWM determines the upper amplitude. The controller104 applies the stroke start value to the Stroke-Low PWM output and thestroke stop value to the Stroke-High PWM output fitting the peak-to-peakamplitude of the triangle wave to the stroke.

Referring now to FIG. 54, the triangle wave 5402 is compared to theposition potentiometer output 5404 generating the resultant PWM output5406 (see FIG. 55). The pulses are then filtered 5408 to produce a 0-5VDC output. This 0-5 VDC output follows the stroke, thus allowing fullresistance excursion as a function of stroke. With reference to FIG. 55,since the elastometric engine output encompasses the full resistancerange, it is scaled to accommodate the configuration profile. A voltagedivider, such as, for example, a digital 8-bit potentiometer 2624 withinput on one end and output at the wiper, can be used to scale theoutput. The value written to the digital potentiometer 2624 is themaximum resistance value minus the minimum resistance value 5502. Thecontroller applies the amplitude adjusted triangle wave and positionpotentiometer output to a comparator 5512 to generate a PWM output 5514ranging from 0% to 100%, where 0% is less-than-or-equal-to the startvalue and 100% is greater-than-or-equal-to the end value 5512. This PWMoutput encompasses the calibrated stroke range from start point to endpoint, where start point is the triangle peak minimum and the end pointis the triangle peak maximum. If the stroke is uncalibrated, the PWMoutput encompasses the entire resistance range of the resistance system,in this instance, represented as 0-255 or ($00-$FF). The PWM output isfiltered 5516 and sent to the digital potentiometer for scaling 5518.The digital potentiometer wiper is configured to scale this value byapplying the voltage divider scaling factor. The calculated voltagedivider output, in this instance, the wiper output, is the elastometricvalue. This value is summed with the minimum resistance and sent to theerror amplifier. When the stroke position is at or below start point,the PWM output is zero and the minimum weight is equal to the minimumresistance. When the stroke position is at or above the end point, thePWM output is the maximum resistance representing the maximum forcepossible for a particular build of the resistance system, and the weightis the sum of minimum resistance plus the scaled PWM output. Therefore,the scaled output is the desired maximum resistance minus minimumresistance. For example, let minimum resistance=20 and maximumresistance=80. The scaled output would be 60, such that at start pointthe resistance is 20+0.6*0=20 and the resistance at end point is20+0.6*100=80. Error amp control is driven by the sum of the minimumresistance and with the wiper voltage divider output 5520. Thecontroller then sets the resistance to this calculated voltage divideroutput 5522. Referring now to FIG. 56, in the case of reverseelastometric exercise profiles, the process can be similar to that justdescribed, with the addition of a step inverting the filtered PWM output5602.

As an example, let the minimum resistance equal 20 ($14), the maximumresistance equal 150 ($96), the stroke start value equal 16 ($10), andthe stroke stop value equal 120 ($78). The resistance varies from($14-$96), and the stroke range is 25.62″ (2.14′). ($10) is loaded intothe stroke-low PWM register. ($78) is loaded into the stroke-high PWMregister. These filtered values are the low/high, in this case 2.039Vpeak-to-peak, values of the triangle waveform against which the positionpot output is compared. The resulting PWM output is filtered and sent tothe voltage divider, for example, a digital pot, for scaling. The outputis scaled by subtracting the minimum resistance value from the endingresistance value, in this case 150−20=130 ($82). This value is writtento the voltage divider, in this case, a digital potentiometer 2624. Theoutput from the wiper of the digital potentiometer 2624 will vary from 0to 130 as a function of stroke (0-255). This variation is summed withthe minimum resistance value of 20, yielding the desired resistancerange of 20 to 150. This will remain the case even if the stroke rangeis exceeded in either direction. The resistance variation is linearthroughout the stroke.

Turning now to FIG. 57, an elastomeric resistance profile is 5700defined by applied resistance or weight in pounds on the vertical axisand stroke position on the horizontal axis is shown. In someembodiments, a first and second start stroke position 5702, 5704 can bepre-defined by the host computing device 106, such as where the cable108 is extended 12 inches from a rest position, or calibrated eithermanually or automatically as described above in reference to FIGS.39-43. Further, an end stroke position 5706 may be similar predeterminedby the host computing device 106, for example, to correspond to a cableextension of 118 inches, or calibrated. For a stroke position of thecable 108 between 0 extension 5708, and a start stroke position 5702,which may be referred to as an initialization stroke 5710, theresistance in weight applied to the cable 108 may be less than the fullresistance value set by the user, such as 40 lbs as shown. In othercases, the resistance applied during the initialization stroke 5710 maybe 0, or any percentage of the full resistance value set by the user,according to a predetermined value, or enterable by the user.

A user may set a starting resistance 5712, such as 40 lbs as shown, andan ending resistance 5714, such as 100 lbs as shown. The elastomericengine, as described previously, can configure a resistance profilebased on the starting and ending resistances 5712, 5714, and on thestarting and ending stroke positions 5702, 5704 and via controller 104,can drive the DC motor 102 to implement such a resistance profile incooperation with at least one potentiometer 115. The elastomericresistance profile may include a ramped out-stroke resistance 5716 fromthe start stroke position 5702 to the end stroke position 5706 and aramped in-stroke resistance 5718 from the end stroke position 5706 backto start stroke position 5704. In this way, resistance training via anelastic band may be simulated with the resistance system.

With reference to FIG. 57B in some embodiments, the elastometricresistance profile 5700 of FIG. 57A may be reversed, via an analoginverter for example, to create and apply a reverse elastometricresistance profile 5750 to a cable 108. A reverse elastomeric resistanceprofile 5750 can be defined by applied resistance or weight in pounds onthe vertical axis and stroke position on the horizontal axis. In someembodiments, a first and second start stroke position 5752, 5754 can bepre-defined by the host 106, such as where the cable 108 is extended 12inches from a rest position, or calibrated either manually orautomatically as described above in reference to FIG. 39 through FIG.43. Further, an end stroke position 5756 may be similar predetermined bythe host computing device 106, for example, to correspond to a cableextension of 118 inches, or calibrated. For a stroke position of thecable 108 between 0 extension 5758, and a start stroke position 5752,which may be referred to as an initialization stroke 5760, theresistance in weight applied to the cable 108 may be less than the fullresistance value set by the user, or the full weight, such as 100 lbs asshown. In other cases, the resistance applied during the initializationstroke 5760 may be 0, or any percentage of the full resistance value setby the user, according to a predetermined value, or enterable by theuser.

The user may set a starting resistance 5762, such as 100 lbs as shown,and an ending resistance 5764, such as 40 lbs as shown. The elastomericengine, as described previously, can configure a resistance profilebased on the starting and ending resistances 5762, 5764, and on thestarting and ending stroke positions 5752, 5754 and via controller 104,can drive the DC motor 102 to implement such a resistance profile incooperation with at least one potentiometer 115. The reverse elastomericresistance profile may include a ramped out-stroke resistance 5766 fromthe start stroke position 5752 to the end stroke position 5756 and aramped in-stroke resistance 5768 from the end stroke position 5756 backto start stroke position 5104.

In some embodiments, the programmable electronic resistance machinevaries the resistance level at one or more discreet locations. Incertain implementations, this step-based approach involves identifyingone or more positions, either from a fixed set of positions or along acontinuum, and setting independent resistance values for one or morepositions. The controller 104 can continuously detect cable position viathe potentiometer 115 and set the resistance levels accordingly,stepping to each resistance value in a discrete manner or in a smoothedmanner.

For a stepping values approach, the user determines the positions ofinterest and configures the desired resistance value for each of thecable positions. The controller 104 changes the resistance level asdefined by the user for each sensed cable placement, such as input fromthe potentiometer 115. Cable velocity and/or acceleration may not beconsidered when providing this type of operation given it is only aresistance/placement operational type.

For a smoothed values approach, the user determines the positions ofinterest and configures the desired resistance value for each of thosecable positions. The rate of change from point to point is taken intoaccount, as well as the resistance level. The controller 104 determinesthe rate of change of cable positioning from point to point andinterleaves resistance changes between the points of interest making theresistance changes feel continuous (i.e. smooth).

Alternately, the elastometric engine can integrate the smoothingfunctions as described previously. In another alternate embodiment, acommunicatively coupled computing device external to the controller 104modifies and communicates those modified values to the controller 104,possibly reducing the programming and operational overhead of thecontroller 104.

In reference to FIG. 58A, resistance profile 5800 with discrete steps,such as an elastomeric positive stroke with discrete steps, is shownrelative to resistance or weight level on the vertical axis and strokeposition on the horizontal axis. In some embodiments, a start strokeposition 5802 can be pre-defined by the host computing device 106, suchas where the cable 108 is extended 12 inches from a rest position, orcalibrated either manually or automatically as described above inreference to FIG. 39 through FIG. 43. Further, an end stroke position5804 may be similar predetermined by the host computing device 106, forexample, to correspond to a cable extension of 118 inches, orcalibrated. The user may further program a start resistance 5806 and anend resistance 5808, which may, for example, be 20 lbs and 50 lbsrespectively. Accordingly, a ramp resistance 5810 may be applied throughcable 108 such that at equal stroke position intervals, the resistancemay be increased a set amount, for example, in 5 lbs increments asshown. This may result in a smooth resistance ramp 5810 from 20 lbs ofresistance at the start stroke position 5802 to 50 lbs of resistance atthe end stroke position 5804. In this embodiment, the resistance profile5800 may be generated by the elastomeric engine and may not requirefurther input from the user to implement the ramp resistance 5810lasting the entire set stroke length.

With reference to FIG. 58B, resistance profile 5820 with discrete stepsis shown modified for step functions at the displayed cable locationsrelative to resistance or weight level on the vertical axis and strokeposition on the horizontal axis. In some embodiments, a start strokeposition 5802 can be pre-defined by the host 106, such as where thecable 108 is extended 12 inches from a rest position, or calibratedeither manually or automatically as described above in reference to FIG.39 through FIG. 43. Further, an end stroke position 5804 may be similarpredetermined by the host computing device 106, for example, tocorrespond to a cable extension of 118 inches, or calibrated. The usermay further program a start resistance 5806 and an end resistance 5808,which may for example be 20 lbs and 50 lbs respectively. In thisembodiment, the user may also set a maximum resistance 5812, for example70 lbs, and set multiple discrete resistances according to strokeposition. Accordingly, a ramp resistance 5814 may be applied throughcable 108 such that at the user set stroke position intervals, theresistance may be increased to the corresponding user set resistance ina stepped manner In some implementations, such as that shown, each stepin resistance may be 10 lbs up or down, and may occur at equal ordifferent cable stroke positions.

In reference to FIG. 58C, resistance profile 5830 with discrete stepsmodified for step functions at the displayed cable locations andsmoothed is shown relative to resistance or weight level on the verticalaxis and stroke position on the horizontal axis. In some embodiments, astart stroke position 5802 can be pre-defined by the host 106, such aswhere the cable 108 is extended 12 inches from a rest position, orcalibrated either manually or automatically as described above inreference to FIG. 39 through FIG. 43. Further, an end stroke position5804 may be similar predetermined by the host computing device 106, forexample, to correspond to a cable extension of 118 inches, orcalibrated. The user may further program a start resistance 5806 and anend resistance 5808, which may, for example, be 20 lbs and 50 lbsrespectively. In this embodiment, the user may also set a maximumresistance 5812, for example 70 lbs, and set multiple discreteresistances according to stroke position. The resistance values may thenbe smoothed according to cable position and/or velocity. Accordingly, aramp resistance 5815 may be applied through cable 108 such that at theuser set stroke position intervals, the resistance may be increased tothe corresponding user set resistance, with smooth transitions to eachdifferent resistance level. In some implementations, such as that shown,each increase in resistance may be 10 lbs up or down, may occur at equalor different cable stroke positions, and are smoothed. In thisembodiment, the maximum resistance value 5812 is not held for any changein stroke position.

Referring now to FIG. 58D, resistance profile 5840 with discrete stepsmodified for step functions at the displayed cable locations andsmoothed, having a greater peak resistance value duration, is shownrelative to resistance or weight level on the vertical axis and strokeposition on the horizontal axis. In some embodiments, a start strokeposition 5802 can be pre-defined by the host computing device 106, suchas where the cable 108 is extended 12 inches from a rest position, orcalibrated either manually or automatically as described above inreference to FIG. 39 through FIG. 43. Further, an end stroke position5804 may be similar predetermined by the host computing device 106, forexample to correspond to a cable extension of 118 inches, or calibrated.The user may further program a start resistance 5806 and an endresistance 5808, which may for example be 20 lbs and 50 lbsrespectively. In this embodiment, the user may also set a maximumresistance 5812, for example 70 lbs, and set multiple discreteresistances according to stroke position. The resistance values may thenbe smoothed according to cable position and/or velocity. Accordingly, aramp resistance 5816 may be applied through cable 108 such that at theuser set stroke position intervals, the resistance may be increased tothe corresponding user set resistance, with smooth transitions to eachdifferent resistance level. In some implementations, each increase inresistance may be 10 lbs up or down, may occur at equal or differentcable stroke positions, and may be smoothed. In this example, themaximum resistance value 5812 is held for a longer duration in change ofstroke position.

Referring now to FIG. 59, in some embodiments, the host computing device106 detects the selection of a stepped exercise mode checkbox 5902. Insome instances, there is no minimum resistance value or maximumresistance value. The host computing device 106 displays an interface toset independent resistance values 5904 corresponding to discreetpositions within the stroke range. In some implementations, the userinterface may include a visual representation of the positions andresistance levels 5906. A smoothing option checkbox 5908 may bepresented. When the controller 104 detects the selection of thesmoothing option check box 5908, resistance changes can be interleavedbetween the discreet positions along the stroke range. Upon detectingthe button press event for the Save button 3908, the host computingdevice 106 marshals and sends the entered values, including the maxcable speed, to the controller 104, which can store them in RAM, inon-board, non-volatile EEPROM, and/or in an alternative persistentmemory store.

Referring now to FIG. 60 and FIG. 61, one or more discreet positions inthe stroke range are set 6102 and associated with a resistance value6104. The controller generates a list of positions ordered by position6106. The controller obtains the absolute resistance mechanism position,in this example from a position potentiometer 115, and calculates therelative position in the stroke range 6108. The controller 104 detectsif the defined stroke position is obtained 6002, in this case, bytraversing the list for each relative position as it is calculated todetermine if the relative position matches a discreet position in thelist 6002-a. If a match is found, the associated resistance value isobtained 6004, and resistance is set to the position resistance valueassociated with the matching position 6006, in this example, a cableposition 6006-a. If no match is found, the closest discreet positionless than the relative cable position is retrieved 6110, and theresistance is set to the position resistance value associated with thatclosest discreet retrieved position 6112.

Referring now to FIG. 62 and FIG. 63, a smoothing algorithm can beapplied to the stepped exercise mode, calculating and settinginterleaved resistance values 6202, 6204 that can be set during thestroke range segments between the defined discreet positions. Thecontroller 104 calculates the rate of change of cable positioning 6302as it obtains relative position values. If the controller determinesthat a relative position value (RP) does not match a discreet positionin the ordered list, an interleave calculation is performed to determinethe resistance value 6202. Such a calculation can include, for example,obtaining the closest discreet position less than the relative cableposition (LV) 6304, the closest discreet position greater than therelative cable position (GV) 6306, and the associated resistance values(LR, GR). An interleaved resistance value can be calculated 6202 usingan algorithm such as, for example, LR+((RP−LV)/(GV−LV)*(GR−LR)).Resistance can be set to the interleaved values in the order calculated6204. In an alternate embodiment, the elastometric engine integrates asmoothing function. In another embodiment, the host can implement theprocessing logic for the interleaving calculations.

Another type of resistance training includes the use of end pointramping. This method provides for ramping up the resistance at an endpoint in the stroke, such as a starting stroke position or an endingstroke position, at a given rate, holding the higher resistance for agiven time, and ramping back down to the original weight/resistance, orany other resistance value. This method can be implemented with otherresistance profiles, such with elastometrics, reverse elastometrics,etc.

Referring now to FIG. 64A and FIG. 64B, in some embodiments, theprogrammable electronic weight machine host detects the selection of anendpoint ramping checkbox 6402. In some instances, this can be combinedwith one or more exercise modes such as, for example, elastometric mode5202. The host computing device 106 can display options for addingendpoint ramping at the end of the out stroke 6404 the in stroke 6406,or both strokes. Time value prompts for ramp time up value 6408, ramptime down value 6410, and/or hold time value 6412 can be displayed.These values can be used to define the timing of the various phases ofthe endpoint ramp. A ramp peak prompt 6414 is displayed, which, in someembodiments, can accept either a positive or negative number, enablingboth positive and negative ramp behavior. Upon detecting the buttonpress event for the Save button 3908, the host computing device 106marshals and sends the entered values, including the endpoint rampingvalues, to the controller 104, which can store them in RAM, in on-board,non-volatile EEPROM, and/or in an alternative persistent memory store.

Referring now to FIG. 65, the controller 104 obtain the minimumresistance value 6502, the maximum resistance value 6504, and the strokestop value 6506. In addition, the controller 104 may obtain the endpointramping parameters, including, for example, ramp peak, ramp time up,hold time, and ramp time down 6508. The controller 104 determinesrelative cable position and compares the position value to the strokestop value 6510. If they match, the controller 104 starts a first timecorresponding to the ramp time up 6511. Resistance values are repeatedlyupdated 6514 until the controller 104 determines the resistance is equalto (maximum resistance+ramp peak) 6516. In some embodiments, therepeatedly-updated resistance value is calculated according to analgorithm such as, for example, maximum resistance+(ramp peak/(ramp timeup−current first timer value)) 6512. Once resistance is equal to(maximum resistance+ramp peak), the controller starts a second timercorresponding to the hold time 6518, The resistance level is unchangedfor the duration of this timer. When the controller determines thecurrent timer value is equal to the hold time 6520, the controllerstarts a third timer corresponding to the ramp down time 6522.Resistance values are repeatedly updated 6526 until the controllerdetermines the resistance is equal to maximum resistance 6528. In someembodiments, the repeatedly-updated resistance value is calculatedaccording to an algorithm such as, for example, (maximum resistance+ramppeak)−(ramp peak/(ramp time up−current third timer value)) 6524.

Referring now to FIG. 66, an end point ramping resistance profile is6600 defined by applied resistance or weight in pounds on the verticalaxis and time on the horizontal axis is shown. The end point rampingresistance profile 6600 may be implemented at a starting or endingposition of the cable 108, or any other position where it is desired tohold a particular stoke length. At a start time 6602, a resistance levelis at a preset level, such as 60 lbs as shown. The resistance level willramp up during resistance up-ramp 6604 to a user programmed or selectedmax resistance level 6606 based on a user programmed or selected ramptime, such as 90 lbs as shown. The max resistance level 6606 will beheld for a user selected or programmed time, such as from time 6608 to6610. The resistance level decreases at a user selected or programmedrate, which may be the same as the up-ramp rate, during resistance downramp 6612 until an end resistance 6614 is reached, such as 60 lbs asshown.

In some embodiments, a first and second start stroke position 6602, 6604can be pre-defined by the host computing device 106, such as where thecable 108 is extended 12 inches from a rest position, or calibratedeither manually or automatically as described above in reference to FIG.39 through FIG. 43. Further, an end stroke position 5106 may be similarpredetermined by the host computing device 106, for example, tocorrespond to a cable extension of 118 inches, or calibrated. Referringnow to FIG. 57A, for a stroke position of the cable 108 between 0extension 5108, and a start stroke position 5102, which may be referredto as an initialization stroke 5110, the resistance in weight applied tothe cable 108 may be less than the full resistance value set by theuser, such as 40 lbs as shown. In other cases, the resistance appliedduring the initialization stroke 5110 may be 0, or any percentage of thefull resistance value set by the user, according to a predeterminedvalue, or enterable by the user.

Referring now to FIG. 67, the host computing device 106 detects theselection of one or more pyramiding checkboxes 6702, 6704. In certainembodiments, the host displays an option for repetition based pyramiding6702, with additional options to weight strip 6706 or weight augment6708, where weight stripping involves decreasing resistance and weightaugmentation involves increasing resistance. The host computing device106 displays prompts for base resistance 6710 and a pyramiding increment6711. The controller 104 can use the pyramiding increment to determinethe amount to increase or decrease the resistance level after eachrepetition. Referring now to FIG. 68, in certain implementations, thecontroller 104 obtains the increment value 6802 and stroke start value6804. The controller then compares the relative cable position receivedto the stroke start value 6806. The matching of these values indicates arepetition has been completed, and the current resistance is increasedor decreased by the increment amount in accordance with the weightstripping or weight augmentation selection 6808.

Referring now to FIG. 69, in certain instances, the host computingdevice 106 displays an option for delay-based pyramiding 6704.Delay-based pyramiding generally involves weight stripping based on auser displaying behavior indicating the user is having difficultycompleting the exercise motion as determined by, for example, thedetection of a slower rate of movement through the stroke range. Delaycan be calculated, for example, as a function of the time it takes tomove from one point in the stroke range to another, or alternatively, bydetecting a lack of movement. The host computing device 106 displaysprompts for base resistance 6710 and the pyramiding increment 6711. Thecontroller can use the pyramiding increment to determine the amount todecrease the resistance level after each repetition. A delay toleranceslider or other edit control may be displayed enabling the selection ofa tolerance level 6802. The tolerance level applies a hysteresis factorto the delay function, increasing the degree of change required totrigger a weight stripping event. In an alternate embodiment, thehysteresis factor can be replaced with discreet values that are added todelay periods defined by a tolerance level. Referring now to FIG. 70, incertain implementations, the controller 104 obtains the increment value6802 and the delay tolerance value 7001. The controller 104 thendetermines if the rate of cable position change is greater than thethreshold tolerance value 7002. If it is greater, this may indicate theuser is having difficulty and the current resistance is decreased by theincrement amount 7004.

The resistance system can support combining various aspects of one ormore exercise modes and/or exercise profiles. For example, repetitionbased pyramiding can be combined with delay based pyramiding. Referringnow to FIG. 70 and FIG. 71, both delay-based pyramiding andrepetition-based pyramiding are selected. The controller 104 obtains theincrement value 6802 the stroke start value 6804, and the tolerancevalue 7001. Both the repetition-based pyramiding and tolerance-basedpyramiding operate as described previously, but they do so concurrently.Depending on the weight stripping and weight augmentation selections6706, 6708, resistance levels are adjusted accordingly at the end ofeach repetition 6808, and delays detected by the controller 104 duringthe stroke range exceeding the tolerance value threshold triggers aresistance reduction 7004. This can, for example, result in a situationwhere resistance is added at the end of each repetition that exceeds theusers ability to complete the stroke. The delay-based pyramidingfunction can rescue the set by automatically reducing the weight to alevel the user can manage. At the end of each repetition, the controller104 will continue to add resistance, pushing the user, but thedelay-based pyramiding function can reduce the likelihood of the setbeing abandoned due to the users inability to overcome the resistancelevel.

It should be noted that the methods, systems and devices discussed aboveare intended merely to be examples. It must be stressed that variousembodiments may omit, substitute, or add various procedures orcomponents as appropriate. For instance, it should be appreciated that,in alternative embodiments, the methods may be performed in an orderdifferent from that described, and that various steps may be added,omitted or combined. Also, features described with respect to certainembodiments may be combined in various other embodiments. Differentaspects and elements of the embodiments may be combined in a similarmanner. Also, it should be emphasized that technology evolves and, thus,many of the elements are exemplary in nature and should not beinterpreted to limit the scope of the invention.

Specific details are given in the description to provide a thoroughunderstanding of the embodiments. However, it will be understood by oneof ordinary skill in the art that the embodiments may be practicedwithout these specific details. For example, well-known circuits,processes, algorithms, structures, and techniques have been shownwithout unnecessary detail in order to avoid obscuring the embodiments.

Also, it is noted that the embodiments may be described as a processthat is depicted as a flow diagram or block diagram. Although each maydescribe the operations as a sequential process, many of the operationscan be performed in parallel or concurrently. In addition, the order ofthe operations may be rearranged. A process may have additional stepsnot included in the figure.

Moreover, as disclosed herein, the term “memory” or “memory unit” mayrepresent one or more devices for storing data, including read-onlymemory (ROM), random access memory (RAM), magnetic RAM, core memory,magnetic disk storage mediums, optical storage mediums, flash memorydevices or other computer-readable mediums for storing information. Theterm “computer-readable medium” includes, but is not limited to,portable or fixed storage devices, optical storage devices, wirelesschannels, a sim card, other smart cards, and various other mediumscapable of storing, containing or carrying instructions or data.

Furthermore, embodiments can be implemented by hardware, software,firmware, middleware, microcode, hardware description languages, or anycombination thereof. When implemented in software, firmware, middlewareor microcode, the program code or code segments to perform the necessarytasks may be stored in a computer-readable medium such as a storagemedium. Processors may perform the necessary tasks.

Having described several embodiments, it will be recognized by those ofskill in the art that various modifications, alternative constructions,and equivalents can be used without departing from the spirit of theinvention. For example, the above elements may merely be a component ofa larger system, wherein other rules may take precedence over orotherwise modify the application of the invention. Also, a number ofsteps may be undertaken before, during, or after the above elements areconsidered. Accordingly, the above description should not be taken aslimiting the scope of the invention.

What is claimed is:
 1. A resistance apparatus, comprising: a rotatabledrive element; a motor controller having a DC output; a DC motoroperatively connected to receive the DC output, the DC motor having arotatable drive section operatively connected to drive the rotatabledrive element; a controllable resistance delivery section having arotatable portion connectable to the rotatable drive element and anextractable resistance delivery section coupled to the rotatable portionof the controllable resistance delivery section; and a feedback controlcircuit provided in a feedback loop for the DC motor, the feedbackcontrol circuit being configured to controllably remove electricalfeedback from a reverse bias of the DC motor.
 2. An exercise resistanceapparatus, comprising: a resistance element; a resistance drivingstructure operatively coupled to the resistance element, the resistanceelement driving structure having a housing with (i) a power sourceproviding power for the resistance apparatus, (ii) a motor controllerwithin the housing and operatively connected to the power source, (iii)a DC motor within the housing operatively connected to the motorcontroller, and (iv) a resistance element drive within the housingoperatively coupled to the DC motor and the resistance element; and aresistance element sensor.
 3. The resistance apparatus of claim 2,wherein the resistance apparatus comprises: a feedback control circuitin communication with the resistance element sensor and/or the DC motor,the feedback control circuit being configured to controllably removeelectrical feedback from a reverse bias of the DC motor.